[Bug middle-end/106751] internal compiler error: in purge_dead_edges with inline-asm goto
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Aug 26 18:08:45 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106751
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
On x86_64 we get:
(jump_insn 5 2 8 2 (parallel [
(asm_operands/v ("# %0") ("") 0 []
[]
[
(label_ref:DI 8)
] /app/example.cpp:7)
(clobber (reg:CC 17 flags))
]) "/app/example.cpp":7:3 -1
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil))
-> 8)
(code_label 8 5 9 3 2 ("__label_warn_on") [1 uses])
(note 9 8 10 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
But on PowerPC we get:
(jump_insn 5 2 12 2 (parallel [
(asm_operands/v ("# %0") ("") 0 []
[]
[
(label_ref:SI 8)
] /app/example.cpp:7)
(clobber (reg:SI 98 ca))
]) "/app/example.cpp":7:3 -1
(expr_list:REG_UNUSED (reg:SI 98 ca)
(nil))
-> 8)
(insn 12 5 8 2 (set (reg:SI 118)
(const_int 0 [0])) "/app/example.cpp":11:28 545 {*movsi_internal1}
(nil))
(code_label 8 12 9 3 2 ("__label_warn_on") [1 uses])
Notice the move before the the label, that is wrong.
More information about the Gcc-bugs
mailing list