Commit 1596d61e by Michael Matz Committed by Michael Matz

re PR inline-asm/33600 (Breakage caused by the fix to PR33552)

gcc/
 PR inline-asm/33600
 * function.c (match_asm_constraints_1): Check for input
 being used in the outputs.

testsuite/
 * gcc.target/i386/pr33600.c: New testcase.

From-SVN: r129035
parent ca39e6f2
2007-10-05 Michael Matz <matz@suse.de>
PR inline-asm/33600
* function.c (match_asm_constraints_1): Check for input
being used in the outputs.
2007-10-05 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
......@@ -5716,7 +5716,7 @@ match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs)
which wouldn't have happen without this pass. So, iterate over
all operands and replace all occurences of the register used. */
for (j = 0; j < noutputs; j++)
if (!rtx_equal_p (SET_DEST (p_sets[j]), output)
if (!rtx_equal_p (SET_DEST (p_sets[j]), input)
&& reg_overlap_mentioned_p (input, SET_DEST (p_sets[j])))
SET_DEST (p_sets[j]) = replace_rtx (SET_DEST (p_sets[j]),
input, output);
......
2007-10-05 Michael Matz <matz@suse.de>
PR inline-asm/33600
* gcc.target/i386/pr33600.c: New testcase.
2007-10-05 Richard Guenther <rguenther@suse.de>
* g++.dg/tree-ssa/obj-type-ref.C: New testcase.
/* { dg-do compile } */
/* { dg-options "-O2" } */
int f(int n)
{
int x;
asm("" : "=&c"(n), "=r"(x) : "1"(n), "0"(n));
return n;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment