On 1/4/24 02:23, Mikael Pettersson wrote:
emit_library_call_value_1 calls emit_push_insn with NULL_TREE
for TYPE. Sometimes emit_push_insn needs to assign a temp with
that TYPE, which causes a segfault.
Fixed by computing the TYPE from MODE when needed.
Original patch by Thorsten Otto.
gcc/
2024-01-03 Thorsten Otto <ad...@tho-otto.de>
Mikael Pettersson <mikpeli...@gmail.com>
PR target/82420
PR target/111279
* expr.cc (emit_push_insn): If TYPE is NULL compute it
from MODE before calling assign_temp.
gcc/teststuite/
2024-01-03 Mikael Pettersson <mikpeli...@gmail.com>
PR target/82420
* gcc.target/m68k/pr82420.c: New test.
This really needs to happen in the two call paths which pass in
NULL_TREE for the type. Note how the type is used to determine padding
earlier in emit_push_insn. That would also make the code more
consistent with the comment before emit_push_insn which implies that
both MODE and TYPE are valid.
Additionally you should bootstrap and regression test this patch on at
least one target.
jeff