The patch for 66139 exposed a long-standing bug with split_nonconstant_init (since 4.7, apparently): initializion of individual elements of an aggregate are not a full-expressions, but split_nonconstant_init was making full-expressions out of them. My fix for 66139 extended the use of split_nonconstant_init, and thus the bug, to aggregate initialization of temporaries within an expression, in which context (PR94041) the bug is more noticeable. PR93922 is a problem with my implementation strategy of splitting out at gimplification time, introducing function calls that weren't in the GENERIC. So I'm going to revert the patch now and try again for GCC 11. gcc/cp/ChangeLog 2020-03-10 Jason Merrill <jason@redhat.com> PR c++/93922 PR c++/94041 PR c++/52320 PR c++/66139 * cp-gimplify.c (cp_gimplify_init_expr): Partially revert patch for 66139: Don't split_nonconstant_init. Remove pre_p parameter.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
080514-1.C | Loading commit data... | |
alias1.C | Loading commit data... | |
anon1.C | Loading commit data... | |
anon1a.cc | Loading commit data... | |
anon2.C | Loading commit data... | |
arm-iwmmxt-unwind.C | Loading commit data... | |
arm-vfp-unwind.C | Loading commit data... | |
array1.C | Loading commit data... | |
async-unwind1.C | Loading commit data... | |
async-unwind2.C | Loading commit data... | |
builtin1.C | Loading commit data... | |
builtin10.C | Loading commit data... | |
builtin11.C | Loading commit data... | |
builtin2.C | Loading commit data... | |
builtin3.C | Loading commit data... | |
builtin4.C | Loading commit data... | |
builtin5.C | Loading commit data... | |
builtin6.C | Loading commit data... | |
builtin7.C | Loading commit data... | |
builtin8.C | Loading commit data... | |
builtin9.C | Loading commit data... | |
cast1.C | Loading commit data... | |
catch1.C | Loading commit data... | |
catch2.C | Loading commit data... | |
catch3.C | Loading commit data... | |
catch4.C | Loading commit data... | |
catch5.C | Loading commit data... | |
check-vect.h | Loading commit data... | |
cleanup1.C | Loading commit data... | |
cleanup2.C | Loading commit data... | |
cleanup3.C | Loading commit data... | |
cleanup4.C | Loading commit data... | |
cleanup5.C | Loading commit data... | |
comdat1.C | Loading commit data... | |
cond1.C | Loading commit data... | |
cond2.C | Loading commit data... | |
cond3.C | Loading commit data... | |
cond4.C | Loading commit data... | |
cond5.C | Loading commit data... | |
cond6.C | Loading commit data... | |
crash1.C | Loading commit data... | |
crossjump1.C | Loading commit data... | |
ctor1.C | Loading commit data... | |
ctor2.C | Loading commit data... | |
ctor3.C | Loading commit data... | |
dead1.C | Loading commit data... | |
defarg1.C | Loading commit data... | |
delayslot1.C | Loading commit data... | |
delete1.C | Loading commit data... | |
div.C | Loading commit data... | |
dtor1.C | Loading commit data... | |
dtor2.C | Loading commit data... | |
dtor3.C | Loading commit data... | |
ehopt1.C | Loading commit data... | |
elide1.C | Loading commit data... | |
elide2.C | Loading commit data... | |
filter1.C | Loading commit data... | |
filter2.C | Loading commit data... | |
forced1.C | Loading commit data... | |
forced2.C | Loading commit data... | |
forced3.C | Loading commit data... | |
forced4.C | Loading commit data... | |
fp-regs.C | Loading commit data... | |
gcsec1.C | Loading commit data... | |
goto1.C | Loading commit data... | |
goto2.C | Loading commit data... | |
goto3.C | Loading commit data... | |
ia64-1.C | Loading commit data... | |
ia64-2.C | Loading commit data... | |
init-temp1.C | Loading commit data... | |
init-temp2.C | Loading commit data... | |
loop1.C | Loading commit data... | |
loop2.C | Loading commit data... | |
nested-try.C | Loading commit data... | |
new1.C | Loading commit data... | |
nrv1.C | Loading commit data... | |
o32-fp.C | Loading commit data... | |
omit-frame-pointer.C | Loading commit data... | |
omit-frame-pointer2.C | Loading commit data... | |
partial1.C | Loading commit data... | |
ppc64-sighandle-cr.C | Loading commit data... | |
pr29166.C | Loading commit data... | |
pr38662.C | Loading commit data... | |
pr41819.C | Loading commit data... | |
pr42859.C | Loading commit data... | |
pr43365.C | Loading commit data... | |
pr45569.C | Loading commit data... | |
pr84968.C | Loading commit data... | |
registers1.C | Loading commit data... | |
return1.C | Loading commit data... | |
scope1.C | Loading commit data... | |
shadow1.C | Loading commit data... | |
sighandle.C | Loading commit data... | |
simd-1.C | Loading commit data... | |
simd-2.C | Loading commit data... | |
simd-3.C | Loading commit data... | |
simd-4.C | Loading commit data... | |
simd-5.C | Loading commit data... | |
spbp.C | Loading commit data... | |
spec1.C | Loading commit data... | |
spec10.C | Loading commit data... | |
spec11.C | Loading commit data... | |
spec2.C | Loading commit data... | |
spec3.C | Loading commit data... | |
spec4.C | Loading commit data... | |
spec5.C | Loading commit data... | |
spec6.C | Loading commit data... | |
spec7.C | Loading commit data... | |
spec8.C | Loading commit data... | |
spec9.C | Loading commit data... | |
stabilize.C | Loading commit data... | |
stdarg1.C | Loading commit data... | |
subreg-1.C | Loading commit data... | |
synth1.C | Loading commit data... | |
synth2.C | Loading commit data... | |
table.C | Loading commit data... | |
template1.C | Loading commit data... | |
template2.C | Loading commit data... | |
terminate1.C | Loading commit data... | |
throw1.C | Loading commit data... | |
throw2.C | Loading commit data... | |
throw3.C | Loading commit data... | |
uncaught1.C | Loading commit data... | |
uncaught2.C | Loading commit data... | |
uncaught3.C | Loading commit data... | |
uncaught4.C | Loading commit data... | |
unexpected1.C | Loading commit data... | |
unwind-direct.C | Loading commit data... | |
unwind1.C | Loading commit data... | |
unwind2.C | Loading commit data... | |
weak1-a.cc | Loading commit data... | |
weak1.C | Loading commit data... |