* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88688
138bc75d-0d04-0410-961f-
82ee72b054a4
-2004-10-05 Andrew Pinski <pinskia@physics.uc.edu>
+2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * parser.c (cp_parser_asm_definition): Look passed the
+ CLEANUP_POINT_EXPR to get the asm expression.
+
+2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17368
* semantics.c (finish_asm_stmt): Asm expressions need cleanup
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);
+2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * g++.dg/ext/asm6.C: Remove extraneous semicolon.
+
2004-10-07 Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR c++/17115
{
A a;
asm("" : : "r"(foo(a)) );//<-- cleanup needed here.
-};
+}