This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
[COMMITTED] Fix: new FAILs on HEAD
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: gcc-regression at gcc dot gnu dot org
- Cc: paul at codesourcery dot com, jsm at polyomino dot org dot uk, bkoz at redhat dot com, kazu at cs dot umass dot edu
- Date: Thu, 7 Oct 2004 09:48:03 -0400
- Subject: [COMMITTED] Fix: new FAILs on HEAD
- References: <20041007154001.A29730@ds217-115-141-84.dedicated.hosteurope.de>
On Oct 7, 2004, at 9:40 AM, Michael Ritzert wrote:
These new FAILs appeared since the last run:
FAIL: g++.dg/ext/asm2.C (test for excess errors)
FAIL: g++.dg/ext/asm6.C (test for excess errors)
These two are mine. The second one is just a typo in the testcase.
The first one is that we are not looking passed the CLEANUP_POINT_EXPR
in the parser.
Committed as obvious.
Thanks,
Andrew Pinski
cp/ChangeLog:
* parser.c (cp_parser_asm_definition): Look passed the
CLEANUP_POINT_EXPR to get the asm expression.
testsuite/ChangeLog:
* g++.dg/ext/asm6.C: Remove extraneous semicolon.
Patch:
Index: parser.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/parser.c,v
retrieving revision 1.260
diff -u -p -r1.260 parser.c
--- parser.c 5 Oct 2004 16:07:51 -0000 1.260
+++ parser.c 7 Oct 2004 13:43:53 -0000
@@ -10389,7 +10389,13 @@ cp_parser_asm_definition (cp_parser* par
inputs, clobbers);
/* If the extended syntax was not used, mark the ASM_EXPR. */
if (!extended_p)
- ASM_INPUT_P (asm_stmt) = 1;
+ {
+ tree temp = asm_stmt;
+ if (TREE_CODE (temp) == CLEANUP_POINT_EXPR)
+ temp = TREE_OPERAND (temp, 0);
+
+ ASM_INPUT_P (temp) = 1;
+ }
}
else
assemble_asm (string);
Index: testsuite/g++.dg/ext/asm6.C
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/ext/asm6.C,v
retrieving revision 1.1
diff -u -p -r1.1 asm6.C
--- testsuite/g++.dg/ext/asm6.C 6 Oct 2004 22:09:25 -0000 1.1
+++ testsuite/g++.dg/ext/asm6.C 7 Oct 2004 13:46:07 -0000
@@ -7,5 +7,5 @@ void bar()
{
A a;
asm("" : : "r"(foo(a)) );//<-- cleanup needed here.
-};
+}