This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/52165] [4.7 Regression] ICE in add_var_loc_to_decl, at dwarf2out.c:5430 building libgo on s390/s390x


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52165

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-08 14:07:52 UTC ---
Looks like a var-tracking bug to me.  We have:
(call_insn 543 542 1495 58 (parallel [
            (call (mem:QI (const:DI (unspec:DI [
                                (symbol_ref:DI ("__go_string_plus") [flags
0x41]  <function_decl 0x7f1f92e6f300 __go_string_plus>)
                            ] UNSPEC_PLT)) [0 __go_string_plus S1 A8])
                (const_int 0 [0]))
            (clobber (reg:DI 14 %r14))
        ]) /usr/src/gcc/libgo/go/net/dnsclient_unix.go:166 572 {*brasl}
     (expr_list:REG_DEAD (reg:DI 4 %r4)
        (expr_list:REG_DEAD (reg:DI 3 %r3)
            (expr_list:REG_DEAD (reg:DI 2 %r2)
                (expr_list:REG_EH_REGION (const_int 0 [0])
                    (nil)))))
    (expr_list:REG_CFA_SET_VDRAP (use (reg:DI 4 %r4))
        (expr_list:REG_CFA_SET_VDRAP (use (reg:DI 3 %r3))
            (expr_list:REG_CFA_SET_VDRAP (use (reg:DI 2 %r2))
                (nil)))))

(note 1495 543 1494 58 (var_location rname (nil)) NOTE_INSN_VAR_LOCATION)

(note 1494 1495 1493 58 (expr_list:REG_DEP_TRUE (concat:DI (reg:DI 4 %r4)
        (plus:DI (reg/f:DI 32 %ap)
            (const_int -352 [0xfffffffffffffea0])))
    (expr_list:REG_DEP_TRUE (concat:DI (reg:DI 3 %r3)
            (plus:DI (reg/f:DI 32 %ap)
                (const_int -336 [0xfffffffffffffeb0])))
        (expr_list:REG_DEP_TRUE (concat:DI (reg:DI 2 %r2)
                (reg/f:DI 6 %r6 [322]))
            (nil)))) NOTE_INSN_CALL_ARG_LOCATION)

(note/c 1493 1494 1492 58 (var_location rname$__length (nil))
NOTE_INSN_VAR_LOCATION)

(note/c 1492 1493 1491 58 (var_location rname$__length (nil))
NOTE_INSN_VAR_LOCATION)

(note/c 1491 1492 1496 58 (var_location rname (nil)) NOTE_INSN_VAR_LOCATION)

(note 1496 1491 1497 58 (var_location rname$__length (nil))
NOTE_INSN_VAR_LOCATION)

(note 1497 1496 776 58 (var_location rname$__length (nil))
NOTE_INSN_VAR_LOCATION)

I believe the NOTE_INSN_VARLOCATION note without /c before /c notes is a bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]