aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.cc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2025-02-16 11:00:36 +0100
committerJason Merrill <jason@redhat.com>2025-02-17 17:19:25 +0000
commit720c8f685210af9fc9c31810e224751102f1481e (patch)
tree8d54d3c7310601b71c1081b6dbb5ddeb39c8882d /gcc/builtins.cc
parent5954c5a7c23fbdf3afc011d703c9fce15db04cbd (diff)
downloadgcc-720c8f685210af9fc9c31810e224751102f1481e.zip
gcc-720c8f685210af9fc9c31810e224751102f1481e.tar.gz
gcc-720c8f685210af9fc9c31810e224751102f1481e.tar.bz2
c++: extended temps and statement-exprs [PR118763]
My last patch for 118856 broke the test for 118763 (which my testing didn't catch, for some reason), because it effectively reverted Jakub's recent fix (r15-7415) for that bug. It seems we need a new flag to indicate internal temporaries. In that patch Jakub wondered if other uses of CLEANUP_EH_ONLY would have the same issue with jumps out of a statement-expr, and indeed it seems that maybe_push_temp_cleanup and now set_up_extended_ref_temp have the same problem. Since maybe_push_temp_cleanup already uses a flag, we can easily stop setting CLEANUP_EH_ONLY there as well. Since set_up_extended_ref_temp doesn't, working around this issue there will be more involved. PR c++/118856 PR c++/118763 gcc/cp/ChangeLog: * cp-tree.h (TARGET_EXPR_INTERNAL_P): New. * call.cc (extend_temps_r): Check it instead of CLEANUP_EH_ONLY. * tree.cc (get_internal_target_expr): Set it instead. * typeck2.cc (maybe_push_temp_cleanup): Don't set CLEANUP_EH_ONLY. gcc/testsuite/ChangeLog: * g++.dg/ext/stmtexpr29.C: New test.
Diffstat (limited to 'gcc/builtins.cc')
0 files changed, 0 insertions, 0 deletions