https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88572
Will Wray <wjwray at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |wjwray at gmail dot com
--- Comment #15 from Will Wray <wjwray at gmail dot com> ---
Created attachment 45683
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45683&action=edit
Proposed patch including updated tests
Accept braces around scalar initializer within aggregate init,
previously rejected; this patch accepts without a warning.
Reject braced empty-brace value-initialization of scalar variable
previously accepted.
Maintain C++98 rejection of scalar braced-init.
See Bug 88572 for details, standards links and extra test code.
Log:
PR c++/88572
* decl.c (reshape_init_r): Remove condition that was incorrectly
rejecting braces around scalar initializer within aggregate init.
Produce no warning. Replace with condition rejecting braced-init
of scalar variable, including empty-brace value-initialization
that was being incorrectly accepted. Produce same error for both.
PR c++/88572
* g++.dg/cpp0x/initlist69.C: Update 2 tests; changed error, OK.
* g++.dg/cpp1z/direct-enum-init1.C: Update 3 tests; changed error.
* g++.dg/init/brace1.C: Update 1 test; error only on c++98. Add
1 test with one more set of braces; error on too many braces.
* g++.dg/init/brace2.C: Add 1 test; empty-brace scalar init fail.
* g++.dg/init/union2.C: Update 1 test; error only on c++98. Add
1 test with one more set of braces; error on too many braces.
* g++.dg/warn/Wbraces2.C: Update 3 test; 1 error only on c++98.
2 now give invalid conversion instead of braces error on >98.