summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/asm-pr24146.c
diff options
context:
space:
mode:
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2005-10-05 12:17:16 +0000
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2005-10-05 12:17:16 +0000
commit89552023e3b457cea4844ab574b86bd3039497fa (patch)
tree56889bd0e587b4c391a24d46c92ac8f2af4f0978 /gcc/testsuite/gcc.dg/asm-pr24146.c
parent7098b9ea217715357c201c4a9f24d557ce1f797f (diff)
downloadgcc-89552023e3b457cea4844ab574b86bd3039497fa.tar.gz
2005-10-05 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/21419 PR tree-optimization/24146 PR tree-optimization/24151 * c-typeck.c (readonly_error): Handle USE being lv_asm. (build_asm_expr): Call it if outputs are read-only. * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419. cp: 2005-10-05 Paolo Bonzini <bonzini@gnu.org> PR tree-optimization/21419 PR tree-optimization/24146 PR tree-optimization/24151 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are read-only. Set ASM_VOLATILE_P for asms without outputs. testsuite: 2005-10-05 Paolo Bonzini <bonzini@gnu.org> PR tree-optimization/21419 PR tree-optimization/24146 PR tree-optimization/24151 * g++.dg/ext/asm7.C: New. * g++.dg/ext/asm8.C: New. * gcc.dg/asm-1.c: Compile on all targets. * gcc.dg/asm-pr24146.c: New. * gcc.dg/pr21419.c: Adjust error messages. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104988 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/asm-pr24146.c')
-rw-r--r--gcc/testsuite/gcc.dg/asm-pr24146.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/asm-pr24146.c b/gcc/testsuite/gcc.dg/asm-pr24146.c
new file mode 100644
index 00000000000..0b1be7da7de
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asm-pr24146.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+
+/* Test that asm with no outputs are treated as volatile. */
+
+void f(int x)
+{
+ __asm__ ("extended asm not discarded" : : "r" (x));
+}
+
+void g (void)
+{
+ __asm__ ("simple asm not discarded");
+}
+/* { dg-final { scan-assembler "extended asm not discarded" } } */
+/* { dg-final { scan-assembler "simple asm not discarded" } } */
+