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.