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> 2007-10-05 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF. * 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) ...@@ -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 which wouldn't have happen without this pass. So, iterate over
all operands and replace all occurences of the register used. */ all operands and replace all occurences of the register used. */
for (j = 0; j < noutputs; j++) 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]))) && reg_overlap_mentioned_p (input, SET_DEST (p_sets[j])))
SET_DEST (p_sets[j]) = replace_rtx (SET_DEST (p_sets[j]), SET_DEST (p_sets[j]) = replace_rtx (SET_DEST (p_sets[j]),
input, output); 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> 2007-10-05 Richard Guenther <rguenther@suse.de>
* g++.dg/tree-ssa/obj-type-ref.C: New testcase. * 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