diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/20020616-1.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/20020616-1.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/20020616-1.c b/gcc/testsuite/gcc.target/i386/20020616-1.c new file mode 100644 index 000000000..5641826b4 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/20020616-1.c @@ -0,0 +1,35 @@ +/* PR opt/6722 */ +/* { dg-do run } */ +/* { dg-options "-O2" } */ + +#if !__PIC__ +register int k asm("%ebx"); +#elif __amd64 +register int k asm("%r12"); +#else +register int k asm("%esi"); +#endif + +void __attribute__((noinline)) +foo() +{ + k = 1; +} + +void test() +{ + int i; + for (i = 0; i < 10; i += k) + { + k = 0; + foo(); + } +} + +int main() +{ + int old = k; + test(); + k = old; + return 0; +} |