aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/old-style-asm-1.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-01-09 12:13:07 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-01-09 11:13:07 +0000
commit4c46ea235323cd0283d998d9860d8596811a704c (patch)
tree111c11b5a4cc31685a7092d95fa33e235dc2f666 /gcc/testsuite/gcc.dg/old-style-asm-1.c
parentf56e86bd9c96aed9d101e8f3893719fb29866c58 (diff)
downloadgcc-4c46ea235323cd0283d998d9860d8596811a704c.zip
gcc-4c46ea235323cd0283d998d9860d8596811a704c.tar.gz
gcc-4c46ea235323cd0283d998d9860d8596811a704c.tar.bz2
re PR inline-asm/8832 (traditional "asm volatile" code is illegally optimized)
PR inline-asm/8832 * tree.h (expand_asm): New prototype. * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed to do so. * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier down to expand_asm. * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier. * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag. (volatile_refs_p) [ASM_INPUT]: Likewise. (side_effects_p) [ASM_INPUT]: Likewise. From-SVN: r61099
Diffstat (limited to 'gcc/testsuite/gcc.dg/old-style-asm-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/old-style-asm-1.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/old-style-asm-1.c b/gcc/testsuite/gcc.dg/old-style-asm-1.c
new file mode 100644
index 0000000..006cf09
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/old-style-asm-1.c
@@ -0,0 +1,19 @@
+/* PR inline-asm/8832 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* Verify that GCC doesn't optimize
+ old style asm instructions. */
+
+void foo(int v)
+{
+ if (v)
+ asm ("dummy1");
+
+ asm ("dummy2");
+
+ if (v)
+ asm ("dummy3");
+}
+
+/* { dg-final { scan-assembler "L2" } } */