diff options
author | Jason Merrill <jason@redhat.com> | 2019-02-21 13:16:15 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-02-21 13:16:15 -0500 |
commit | 7b45322a5e5030d386a3ad3f747f5e390be4d3ff (patch) | |
tree | 6fcd5af2f5a869fe25729cfc965e662154b51ad0 /gcc/cp/lambda.c | |
parent | f64629aa9aefbdcf895b120f00caf5b18a17e3e4 (diff) | |
download | gcc-7b45322a5e5030d386a3ad3f747f5e390be4d3ff.zip gcc-7b45322a5e5030d386a3ad3f747f5e390be4d3ff.tar.gz gcc-7b45322a5e5030d386a3ad3f747f5e390be4d3ff.tar.bz2 |
PR c++/88690 - C++17 ICE with empty base in aggregate.
Base fields for empty bases appear in initialization order, which may not be
the same as layout order. If they also show up in a CONSTRUCTOR in that
order, output_constructor_regular_field aborts because it understandably
doesn't want to go backwards. I also considered making o_c_r_f more
tolerant of the case where the out-of-order field has fieldsize 0, and so no
actual data needs to be emitted, but we might as well avoid adding an
element to the CONSTRUCTOR in the first place.
* typeck2.c (process_init_constructor_record): Skip trivial
initialization of an empty base.
From-SVN: r269073
Diffstat (limited to 'gcc/cp/lambda.c')
0 files changed, 0 insertions, 0 deletions