[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Bug other/42715] [4.5 Regression] output_operand: invalid expression as operand




------- Comment #5 from jakub at gcc dot gnu dot org  2010-01-13 12:09 -------
Looks like some var-tracking bug.  We have:
(insn:TI 108 37 38 3 (set (reg/f:SI 2 cx [93]) (const:SI (unspec:SI
[(symbol_ref:SI ("v1") [flags 0x2]  <var_decl 0x7fc316f38000 v1>)] 1))) 247
{*lea_1} (expr_list:REG_EQUAL (const:SI (unspec:SI [(symbol_ref:SI ("v1")
[flags 0x2]  <var_decl 0x7fc316f38000 v1>)] 1)) (nil)))
and then:
(insn:TI 57 56 59 18 pr42715.i:12 (parallel [(set (reg:SI 2 cx [orig:86 v ]
[86]) (asm_operands/v:SI ("") ("=r") 0 []...)
(debug_insn 59 57 60 18 pr42715.i:12 (var_location:SI v (reg:SI 2 cx [orig:86 v
] [86])) -1 (nil))
...
(call_insn:TI 64 63 190 18 pr42715.i:20 (set (reg:SI 0 ax) ...)
(jump_insn 190 64 191 18 (set (pc) (label_ref 65)) -1 (nil) -> 65)
with no labels in between 57 and 190.  But var-tracking somehow manages to
resurrect the unspec value of cx that cx obviously doesn't have after the call
(where it has undefined value).  Alex, can you please have a look?


-- 


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


Reply to: