public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/101500] New: gcc accepts the code with extra curly braces
@ 2021-07-18 21:28 fchelnokov at gmail dot com
2021-07-19 10:36 ` [Bug c++/101500] [9/10/11/12 Regression] " redi at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: fchelnokov at gmail dot com @ 2021-07-18 21:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101500
Bug ID: 101500
Summary: gcc accepts the code with extra curly braces
Product: gcc
Version: 11.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: fchelnokov at gmail dot com
Target Milestone: ---
The following ill-formed code is the illustration
```
struct A
{
A() {}
A( A&& ) = delete;
~A() {}
};
int main() {
const A a = {{A{}}}; //error line
}
```
https://gcc.godbolt.org/z/eq5WhTfz3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/101500] [9/10/11/12 Regression] gcc accepts the code with extra curly braces
2021-07-18 21:28 [Bug c++/101500] New: gcc accepts the code with extra curly braces fchelnokov at gmail dot com
@ 2021-07-19 10:36 ` redi at gcc dot gnu.org
2021-07-19 11:50 ` rguenth at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: redi at gcc dot gnu.org @ 2021-07-19 10:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101500
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |10.3.0, 11.1.0, 12.0,
| |8.1.0, 9.4.0
CC| |jason at gcc dot gnu.org
Known to work| |7.5.0
Last reconfirmed| |2021-07-19
Ever confirmed|0 |1
Summary|gcc accepts the code with |[9/10/11/12 Regression] gcc
|extra curly braces |accepts the code with extra
| |curly braces
Status|UNCONFIRMED |NEW
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
EDG v6.2 also accepts this, but Clang and MSVC don't.
GCC started to accept it at:
PR c++/85092 - C++17 ICE with unused list constructor.
* call.c (conv_binds_ref_to_prvalue): Also count ck_identity
from a TARGET_EXPR.
From-SVN: r259052
I'll confirm it as a regression, since it doesn't look like that intended to
change this case.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/101500] [9/10/11/12 Regression] gcc accepts the code with extra curly braces
2021-07-18 21:28 [Bug c++/101500] New: gcc accepts the code with extra curly braces fchelnokov at gmail dot com
2021-07-19 10:36 ` [Bug c++/101500] [9/10/11/12 Regression] " redi at gcc dot gnu.org
@ 2021-07-19 11:50 ` rguenth at gcc dot gnu.org
2022-01-20 12:43 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-07-19 11:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101500
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |9.5
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/101500] [9/10/11/12 Regression] gcc accepts the code with extra curly braces
2021-07-18 21:28 [Bug c++/101500] New: gcc accepts the code with extra curly braces fchelnokov at gmail dot com
2021-07-19 10:36 ` [Bug c++/101500] [9/10/11/12 Regression] " redi at gcc dot gnu.org
2021-07-19 11:50 ` rguenth at gcc dot gnu.org
@ 2022-01-20 12:43 ` rguenth at gcc dot gnu.org
2022-04-15 15:44 ` [Bug c++/101500] [C++17] [DR2311] " jason at gcc dot gnu.org
2022-05-27 9:06 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-01-20 12:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101500
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/101500] [C++17] [DR2311] gcc accepts the code with extra curly braces
2021-07-18 21:28 [Bug c++/101500] New: gcc accepts the code with extra curly braces fchelnokov at gmail dot com
` (2 preceding siblings ...)
2022-01-20 12:43 ` rguenth at gcc dot gnu.org
@ 2022-04-15 15:44 ` jason at gcc dot gnu.org
2022-05-27 9:06 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: jason at gcc dot gnu.org @ 2022-04-15 15:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101500
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[9/10/11/12 Regression] gcc |[C++17] [DR2311] gcc
|accepts the code with extra |accepts the code with extra
|curly braces |curly braces
Status|NEW |SUSPENDED
URL| |wg21.link/cwg2311
--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
This seems like an instance of issue 2311: with C++17 mandatory copy elision,
do we really want an actual call to the move constructor in this case? The
testcase is rejected in C++14 mode, as expected.
The standard says that we try to call a constructor, initializing the argument
with {A{}}. So we in turn look for an A constructor to initialize the
argument, initializing its argument from A{}. Under 2311, does this result in
still an rvalue? And the enclosing constructor call, still the same rvalue?
This seems parallel to
const A a = A(A(A()));
which is also accepted by clang in C++17 mode.
Perhaps we want to raise the priority of issue 2311.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/101500] [C++17] [DR2311] gcc accepts the code with extra curly braces
2021-07-18 21:28 [Bug c++/101500] New: gcc accepts the code with extra curly braces fchelnokov at gmail dot com
` (3 preceding siblings ...)
2022-04-15 15:44 ` [Bug c++/101500] [C++17] [DR2311] " jason at gcc dot gnu.org
@ 2022-05-27 9:06 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27 9:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101500
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.5 |---
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-05-27 9:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-18 21:28 [Bug c++/101500] New: gcc accepts the code with extra curly braces fchelnokov at gmail dot com
2021-07-19 10:36 ` [Bug c++/101500] [9/10/11/12 Regression] " redi at gcc dot gnu.org
2021-07-19 11:50 ` rguenth at gcc dot gnu.org
2022-01-20 12:43 ` rguenth at gcc dot gnu.org
2022-04-15 15:44 ` [Bug c++/101500] [C++17] [DR2311] " jason at gcc dot gnu.org
2022-05-27 9:06 ` rguenth 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).