diff options
author | Jason Merrill <jason@redhat.com> | 2025-02-10 15:44:13 +0100 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2025-02-11 23:46:13 +0100 |
commit | 0d2a5f3cb715fd95f1fa4a13b5d67c7eea28f178 (patch) | |
tree | a58af1e28cd714da3422ee91877fc32a5e7a796d /libgo/go | |
parent | 299a8e2dc667e795991bc439d2cad5ea5bd379e2 (diff) | |
download | gcc-0d2a5f3cb715fd95f1fa4a13b5d67c7eea28f178.zip gcc-0d2a5f3cb715fd95f1fa4a13b5d67c7eea28f178.tar.gz gcc-0d2a5f3cb715fd95f1fa4a13b5d67c7eea28f178.tar.bz2 |
c++: change implementation of -frange-for-ext-temps [PR118574]
The implementation in r15-3840 used a novel technique of wrapping the entire
range-for loop in a CLEANUP_POINT_EXPR, which confused the coroutines
transformation. Instead let's use the existing extend_ref_init_temps
mechanism.
This does not revert all of r15-3840, only the parts that change how
CLEANUP_POINT_EXPRs are applied to range-for declarations.
PR c++/118574
PR c++/107637
gcc/cp/ChangeLog:
* call.cc (struct extend_temps_data): New.
(extend_temps_r, extend_all_temps): New.
(set_up_extended_ref_temp): Handle tree walk case.
(extend_ref_init_temps): Cal extend_all_temps.
* decl.cc (initialize_local_var): Revert ext-temps change.
* parser.cc (cp_convert_range_for): Likewise.
(cp_parser_omp_loop_nest): Likewise.
* pt.cc (tsubst_stmt): Likewise.
* semantics.cc (finish_for_stmt): Likewise.
gcc/testsuite/ChangeLog:
* g++.dg/coroutines/range-for1.C: New test.
Diffstat (limited to 'libgo/go')
0 files changed, 0 insertions, 0 deletions