This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/52165] [4.7 Regression] ICE in add_var_loc_to_decl, at dwarf2out.c:5430 building libgo on s390/s390x
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 08 Feb 2012 14:07:52 +0000
- Subject: [Bug middle-end/52165] [4.7 Regression] ICE in add_var_loc_to_decl, at dwarf2out.c:5430 building libgo on s390/s390x
- Auto-submitted: auto-generated
- References: <bug-52165-4@http.gcc.gnu.org/bugzilla/>
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.