Fix segfault during delay slot scheduling pass
commitf34141730266600b615b91d563a85a0b60223b3e
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 9 Jan 2024 09:14:29 +0000 (9 10:14 +0100)
committerEric Botcazou <ebotcazou@adacore.com>
Tue, 9 Jan 2024 09:24:57 +0000 (9 10:24 +0100)
treecbbfc9a0a6f21b1c6b46e35ed1d7963494584c4e
parentf2e967e0257bc8188840df236595e7218b6bf748
Fix segfault during delay slot scheduling pass

This is a small regression present on the mainline and 13 branch, although
the underlying problem has probably been there for ages, in the form of a
segfault during the delay slot scheduling pass, for a function that falls
through to exit without any instruction generated for the end of function.

gcc/
PR rtl-optimization/113140
* reorg.cc (fill_slots_from_thread): If we are to branch after the
last instruction of the function, create an end label.

gcc/testsuite/
* g++.dg/opt/delay-slot-2.C: New test.
gcc/reorg.cc
gcc/testsuite/g++.dg/opt/delay-slot-2.C [new file with mode: 0644]