diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/execute/930930-1.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.c-torture/execute/930930-1.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/930930-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/930930-1.c new file mode 100644 index 000000000..101a5f9ef --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/930930-1.c @@ -0,0 +1,36 @@ +__extension__ typedef __PTRDIFF_TYPE__ ptr_t; +ptr_t *wm_TR; +ptr_t *wm_HB; +ptr_t *wm_SPB; + +ptr_t mem[100]; + +f (mr_TR, mr_SPB, mr_HB, reg1, reg2) + ptr_t *mr_TR; + ptr_t *mr_SPB; + ptr_t *mr_HB; + ptr_t *reg1; + ptr_t *reg2; +{ + ptr_t *x = mr_TR; + + for (;;) + { + if (reg1 < reg2) + goto out; + if ((ptr_t *) *reg1 < mr_HB && (ptr_t *) *reg1 >= mr_SPB) + *--mr_TR = *reg1; + reg1--; + } + out: + + if (x != mr_TR) + abort (); +} + +main () +{ + mem[99] = (ptr_t) mem; + f (mem + 100, mem + 6, mem + 8, mem + 99, mem + 99); + exit (0); +} |