From 564060c32aba5494ae02d37a7f005798bb646011 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Wed, 6 Oct 2004 15:09:25 -0700 Subject: [multiple changes] 2004-10-05 Andrew Pinski PR c++/17368 * semantics.c (finish_asm_stmt): Asm expressions need cleanup also. 2004-10-06 Andrew Pinski PR c++/17368 * g++.dg/ext/asm6.C: New test. From-SVN: r88627 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/semantics.c | 1 + gcc/testsuite/ChangeLog | 7 ++++++- gcc/testsuite/g++.dg/ext/asm6.C | 11 +++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/ext/asm6.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 13117b8..20a6a2d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-10-05 Andrew Pinski + + PR c++/17368 + * semantics.c (finish_asm_stmt): Asm expressions need cleanup + also. + 2004-10-05 Gabriel Dos Reis Convert diagnostics to use quoting flag q 6/n diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 5bb6f3b..78d2683 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -1178,6 +1178,7 @@ finish_asm_stmt (int volatile_p, tree string, tree output_operands, output_operands, input_operands, clobbers); ASM_VOLATILE_P (r) = volatile_p; + r = maybe_cleanup_point_expr (r); return add_stmt (r); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f684e7f..8e23309 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ +2004-10-06 Andrew Pinski + + PR c++/17368 + * g++.dg/ext/asm6.C: New test. + 2004-10-06 Kenneth Zadeck - gcc.dg/20011119-1.c : Added memory attribute to asm sequence. + * gcc.dg/20011119-1.c : Added memory attribute to asm sequence. 2004-10-06 Paul Brook diff --git a/gcc/testsuite/g++.dg/ext/asm6.C b/gcc/testsuite/g++.dg/ext/asm6.C new file mode 100644 index 0000000..eaf79f4 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/asm6.C @@ -0,0 +1,11 @@ +struct A +{ + ~A(); +}; +int foo(A); +void bar() +{ + A a; + asm("" : : "r"(foo(a)) );//<-- cleanup needed here. +}; + -- cgit v1.1