From: Andrew Pinski Date: Thu, 7 Oct 2004 13:48:27 +0000 (+0000) Subject: parser.c (cp_parser_asm_definition): Look passed the CLEANUP_POINT_EXPR to get the... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ca05904340457c4c7dbdb15bc589ab980434fa53;p=gcc.git parser.c (cp_parser_asm_definition): Look passed the CLEANUP_POINT_EXPR to get the asm expression. 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. From-SVN: r88688 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 20a6a2de72c..364d1bec6fa 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,4 +1,9 @@ -2004-10-05 Andrew Pinski +2004-10-07 Andrew Pinski + + * parser.c (cp_parser_asm_definition): Look passed the + CLEANUP_POINT_EXPR to get the asm expression. + +2004-10-06 Andrew Pinski PR c++/17368 * semantics.c (finish_asm_stmt): Asm expressions need cleanup diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 79342dbf576..9bd3f1805b6 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -10389,7 +10389,13 @@ cp_parser_asm_definition (cp_parser* parser) 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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1087adb9f4d..03e569e4641 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-10-07 Andrew Pinski + + * g++.dg/ext/asm6.C: Remove extraneous semicolon. + 2004-10-07 Giovanni Bajo PR c++/17115 diff --git a/gcc/testsuite/g++.dg/ext/asm6.C b/gcc/testsuite/g++.dg/ext/asm6.C index eaf79f43cde..96ef9d385a8 100644 --- a/gcc/testsuite/g++.dg/ext/asm6.C +++ b/gcc/testsuite/g++.dg/ext/asm6.C @@ -7,5 +7,5 @@ void bar() { A a; asm("" : : "r"(foo(a)) );//<-- cleanup needed here. -}; +}