On 12/5/24 6:18 AM, Konstantinos Eleftheriou wrote:
From: kelefth <konstantinos.elefther...@vrull.eu>

Avoid-store-forwarding doesn't handle the case where an instruction in the
store-load sequence contains a REG_EH_REGION note, leading to the insertion
of instructions after it, while it should be the last instruction in the
basic block. This causes an ICE when compiling using `-O -fnon-call-exceptions
-favoid-store-forwarding -fno-forward-propagate -finstrument-functions`.

This patch rejects the transformation when there are instructions in the
sequence that may throw an exeption.

        PR 117816

gcc/ChangeLog:

        * avoid-store-forwarding.cc
        (store_forwarding_analyzer::avoid_store_forwarding): Reject the
        transformation when having instructions that may throw exceptions
        in the sequence.

gcc/testsuite/ChangeLog:

        * gcc.dg/pr117816.c: New test.
I didn't see any note about testing, so I went ahead and bootstrap/regression tested this on x86, which passed with no issues.

OK for the trunk.

jeff

Reply via email to