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).