Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.c-torture/execute/20061220-1.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* PR middle-end/30262 */ /* { dg-skip-if "asm statements do not work as expected" { rl78-*-* } } */ extern void abort (void); int foo (void) { unsigned int x = 0; void nested (void) { x = 254; } nested (); asm volatile ("" :: "r" (x)); asm volatile ("" :: "m" (x)); asm volatile ("" :: "mr" (x)); asm volatile ("" : "=r" (x) : "0" (x)); asm volatile ("" : "=m" (x) : "m" (x)); return x; } int bar (void) { unsigned int x = 0; void nested (void) { asm volatile ("" :: "r" (x)); asm volatile ("" :: "m" (x)); asm volatile ("" :: "mr" (x)); x += 4; asm volatile ("" : "=r" (x) : "0" (x)); asm volatile ("" : "=m" (x) : "m" (x)); } nested (); return x; } int baz (void) { unsigned int x = 0; void nested (void) { void nested2 (void) { asm volatile ("" :: "r" (x)); asm volatile ("" :: "m" (x)); asm volatile ("" :: "mr" (x)); x += 4; asm volatile ("" : "=r" (x) : "0" (x)); asm volatile ("" : "=m" (x) : "m" (x)); } nested2 (); nested2 (); } nested (); return x; } int main (void) { if (foo () != 254 || bar () != 4 || baz () != 8) abort (); return 0; }