diff options
author | Arsen Arsenović <arsen@aarsen.me> | 2024-08-16 19:07:01 +0200 |
---|---|---|
committer | Arsen Arsenović <arsen@gcc.gnu.org> | 2024-08-29 13:53:33 +0200 |
commit | d9c54e9a036189e8961ec17e118fccf794d7bfab (patch) | |
tree | bc5519633349392ee78f596f22ffe38a7a376fde /gcc/gimple-loop-jam.cc | |
parent | bd2ccc24420c0789a3ad0b49d0ea4c2e7653afae (diff) | |
download | gcc-d9c54e9a036189e8961ec17e118fccf794d7bfab.zip gcc-d9c54e9a036189e8961ec17e118fccf794d7bfab.tar.gz gcc-d9c54e9a036189e8961ec17e118fccf794d7bfab.tar.bz2 |
c++: don't remove labels during coro-early-expand-ifns [PR105104]
In some scenarios, it is possible for the CFG cleanup to cause one of
the labels mentioned in CO_YIELD, which coro-early-expand-ifns intends
to remove, to become part of some statement. As a result, when that
label is removed, the statement it became part of becomes invalid,
crashing the compiler.
There doesn't appear to be a reason to remove the labels (anymore, at
least), so let's not do that.
PR c++/105104
gcc/ChangeLog:
* coroutine-passes.cc (execute_early_expand_coro_ifns): Don't
remove any labels.
gcc/testsuite/ChangeLog:
* g++.dg/coroutines/torture/pr105104.C: New test.
Diffstat (limited to 'gcc/gimple-loop-jam.cc')
0 files changed, 0 insertions, 0 deletions