From: jakub Date: Tue, 3 Feb 2009 17:27:45 +0000 (+0000) Subject: PR target/35318 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fbcb9be4485f830a7baf498c0e8bd6563b2b9d0b;p=thirdparty%2Fgcc.git PR target/35318 * function.c (match_asm_constraints_1): Skip over initial optional % in the constraint. * gcc.c-torture/compile/pr35318.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143901 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a92228c9b113..d9eb79f1a62a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2009-02-03 Jakub Jelinek + 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. diff --git a/gcc/function.c b/gcc/function.c index 0cf4d5d00002..7489dc915dd8 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -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; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4062c8688a50..1df4e70f7033 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2009-02-03 Jakub Jelinek + 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. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr35318.c b/gcc/testsuite/gcc.c-torture/compile/pr35318.c new file mode 100644 index 000000000000..85bb36269860 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr35318.c @@ -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)); +}