diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2003-01-09 12:13:07 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-01-09 11:13:07 +0000 |
commit | 4c46ea235323cd0283d998d9860d8596811a704c (patch) | |
tree | 111c11b5a4cc31685a7092d95fa33e235dc2f666 /gcc/testsuite/gcc.dg/old-style-asm-1.c | |
parent | f56e86bd9c96aed9d101e8f3893719fb29866c58 (diff) | |
download | gcc-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.c | 19 |
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" } } */ |