re PR target/35318 (ICE with inline asm in reload)

PR target/35318
	* function.c (match_asm_constraints_1): Skip over
	initial optional % in the constraint.

	* gcc.c-torture/compile/pr35318.c: New test.

From-SVN: r143901
This commit is contained in:
Jakub Jelinek 2009-02-03 18:27:45 +01:00 committed by Jakub Jelinek
parent 754ccf7c7c
commit 70f1628747
4 changed files with 18 additions and 0 deletions

View File

@ -1,5 +1,9 @@
2009-02-03 Jakub Jelinek <jakub@redhat.com>
PR target/35318
* function.c (match_asm_constraints_1): Skip over
initial optional % in the constraint.
PR inline-asm/39059
* c-parser.c (c_parser_postfix_expression): If fixed point is not
supported, don't accept FIXED_CSTs.

View File

@ -5477,6 +5477,9 @@ match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs)
char *end;
int match, j;
if (*constraint == '%')
constraint++;
match = strtoul (constraint, &end, 10);
if (end == constraint)
continue;

View File

@ -1,5 +1,8 @@
2009-02-03 Jakub Jelinek <jakub@redhat.com>
PR target/35318
* gcc.c-torture/compile/pr35318.c: New test.
PR inline-asm/39059
* gcc.dg/nofixed-point-2.c: New test.
* g++.dg/ext/fixed1.C: Adjust expected diagnostics.

View File

@ -0,0 +1,8 @@
/* PR target/35318 */
void
foo ()
{
double x = 4, y;
__asm__ volatile ("" : "=r,r" (x), "=r,r" (y) : "%0,0" (x), "m,r" (8));
}