public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/94231] New: Invalid move constructor defaulted outside of class as deleted is accepted @ 2020-03-20 0:08 herring at lanl dot gov 2020-04-18 0:06 ` [Bug c++/94231] " mpolacek at gcc dot gnu.org ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: herring at lanl dot gov @ 2020-03-20 0:08 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94231 Bug ID: 94231 Summary: Invalid move constructor defaulted outside of class as deleted is accepted Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: herring at lanl dot gov Target Milestone: --- GCC incorrectly accepts the following: struct F {F(F&&)=delete;}; template<int=0> struct M { F f; M(); M(const M&); M(M&&); }; template<int I> M<I>::M(M&&)=default; M<> f() { M<> m; return m; } The returned value is implicitly moved-from (although adding static_cast<M<>&&> makes no difference), which should discover that M's move constructor is invalid because it is defaulted after its first declaration and defined as deleted, but simply falls back to the copy constructor instead. If M is not a template, GCC correctly rejects, although the error messages are a bit confused. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/94231] Invalid move constructor defaulted outside of class as deleted is accepted 2020-03-20 0:08 [Bug c++/94231] New: Invalid move constructor defaulted outside of class as deleted is accepted herring at lanl dot gov @ 2020-04-18 0:06 ` mpolacek at gcc dot gnu.org 2024-02-06 14:36 ` mpolacek at gcc dot gnu.org ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: mpolacek at gcc dot gnu.org @ 2020-04-18 0:06 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94231 Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org Status|UNCONFIRMED |NEW Last reconfirmed| |2020-04-18 Ever confirmed|0 |1 --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Confirmed, thanks for the report. Not a regression. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/94231] Invalid move constructor defaulted outside of class as deleted is accepted 2020-03-20 0:08 [Bug c++/94231] New: Invalid move constructor defaulted outside of class as deleted is accepted herring at lanl dot gov 2020-04-18 0:06 ` [Bug c++/94231] " mpolacek at gcc dot gnu.org @ 2024-02-06 14:36 ` mpolacek at gcc dot gnu.org 2024-02-06 16:49 ` cvs-commit at gcc dot gnu.org 2024-02-06 16:51 ` mpolacek at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: mpolacek at gcc dot gnu.org @ 2024-02-06 14:36 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94231 Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org --- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Seems to have been fixed by the very recent r14-8759. I'll add the test. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/94231] Invalid move constructor defaulted outside of class as deleted is accepted 2020-03-20 0:08 [Bug c++/94231] New: Invalid move constructor defaulted outside of class as deleted is accepted herring at lanl dot gov 2020-04-18 0:06 ` [Bug c++/94231] " mpolacek at gcc dot gnu.org 2024-02-06 14:36 ` mpolacek at gcc dot gnu.org @ 2024-02-06 16:49 ` cvs-commit at gcc dot gnu.org 2024-02-06 16:51 ` mpolacek at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-02-06 16:49 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94231 --- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>: https://gcc.gnu.org/g:1befe47f64bf0b964be90730e2cbef550cb6d2b7 commit r14-8830-g1befe47f64bf0b964be90730e2cbef550cb6d2b7 Author: Marek Polacek <polacek@redhat.com> Date: Tue Feb 6 11:44:44 2024 -0500 c++: add fixed test [PR94231] I was suprised to find out that r14-8759 fixed this accepts-invalid. clang version 17.0.6 rejects the test as well; clang version 19.0.0git crashes for which I opened <https://github.com/llvm/llvm-project/issues/80869>. PR c++/94231 gcc/testsuite/ChangeLog: * g++.dg/cpp0x/deleted17.C: New test. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/94231] Invalid move constructor defaulted outside of class as deleted is accepted 2020-03-20 0:08 [Bug c++/94231] New: Invalid move constructor defaulted outside of class as deleted is accepted herring at lanl dot gov ` (2 preceding siblings ...) 2024-02-06 16:49 ` cvs-commit at gcc dot gnu.org @ 2024-02-06 16:51 ` mpolacek at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: mpolacek at gcc dot gnu.org @ 2024-02-06 16:51 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94231 Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Hopefully fixed. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-02-06 16:51 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-20 0:08 [Bug c++/94231] New: Invalid move constructor defaulted outside of class as deleted is accepted herring at lanl dot gov 2020-04-18 0:06 ` [Bug c++/94231] " mpolacek at gcc dot gnu.org 2024-02-06 14:36 ` mpolacek at gcc dot gnu.org 2024-02-06 16:49 ` cvs-commit at gcc dot gnu.org 2024-02-06 16:51 ` mpolacek at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).