[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