diff options
author | Jason Merrill <jason@redhat.com> | 2021-05-19 21:12:45 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2021-05-20 16:59:17 -0400 |
commit | 84fd1b5dff70cd74aee7e8b18f66959d8b8e1ce7 (patch) | |
tree | 3584ac15bb2a3eea9a0c8787fc9b66e5bbc4f396 /gcc/ada/gcc-interface/decl.c | |
parent | 64ba45c76e831914764b70207d69a06f800b43a4 (diff) | |
download | gcc-84fd1b5dff70cd74aee7e8b18f66959d8b8e1ce7.zip gcc-84fd1b5dff70cd74aee7e8b18f66959d8b8e1ce7.tar.gz gcc-84fd1b5dff70cd74aee7e8b18f66959d8b8e1ce7.tar.bz2 |
c++: designated init with anonymous union [PR100489]
My patch for PR98463 added an assert that tripped on this testcase, because
we ended up with a U CONSTRUCTOR with an initializer for a, which is not a
member of U. We need to wrap the a initializer in another CONSTRUCTOR for
the anonymous union.
There was already support for this in process_init_constructor_record, but
not in process_init_constructor_union. But since this is about brace
elision, it really belongs under reshape_init rather than digest_init, so
this patch moves the handling to reshape_init_class, which also handles
unions.
PR c++/100489
gcc/cp/ChangeLog:
* decl.c (reshape_init_class): Handle designator for
member of anonymous aggregate here.
* typeck2.c (process_init_constructor_record): Not here.
gcc/testsuite/ChangeLog:
* g++.dg/cpp2a/desig18.C: New test.
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
0 files changed, 0 insertions, 0 deletions