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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129035
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
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.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+int f(int n)
+{
+ int x;
+
+ asm("" : "=&c"(n), "=r"(x) : "1"(n), "0"(n));
+
+ return n;
+}