On 11/18/24 09:57, Jeff Law wrote:
And stage3 begins...
Zdenek's fuzzer caught this one. Essentially using
simplify_gen_subreg directly with an offset of 0 when we just needed a
lowpart.
The offset of 0 works for little endian, but for big endian it's
simply wrong. simplify_gen_subreg will return NULL_RTX because the
case isn't representable. We then embed that NULL_RTX into an insn
that's later scanned during mark_jump_label.
Scanning the port I see a couple more instances of this incorrect
idiom. One is pretty obvious to fix. The others look a bit goofy
and I'll probably need to sync with Patrick on them.
Anyway tested on riscv64-elf and riscv32-elf with no regressions.
Pushing to the trunk.
jeff
Thanks! Also in the big-endian space:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109933
I have a patch attached to that bug but never landed it since I didn't
have a way to test it.
Patrick