aboutsummaryrefslogtreecommitdiff
path: root/SingleSource/Regression/C/gcc-c-torture/execute/loop-5.c
diff options
context:
space:
mode:
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/loop-5.c')
-rw-r--r--SingleSource/Regression/C/gcc-c-torture/execute/loop-5.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/loop-5.c b/SingleSource/Regression/C/gcc-c-torture/execute/loop-5.c
new file mode 100644
index 00000000..44ece275
--- /dev/null
+++ b/SingleSource/Regression/C/gcc-c-torture/execute/loop-5.c
@@ -0,0 +1,36 @@
+static int ap(int i);
+static void testit(void){
+ int ir[4] = {0,1,2,3};
+ int ix,n,m;
+ n=1; m=3;
+ for (ix=1;ix<=4;ix++) {
+ if (n == 1) m = 4;
+ else m = n-1;
+ ap(ir[n-1]);
+ n = m;
+ }
+}
+
+static int t = 0;
+static int a[4];
+
+static int ap(int i){
+ if (t > 3)
+ abort();
+ a[t++] = i;
+ return 1;
+}
+
+int main(void)
+{
+ testit();
+ if (a[0] != 0)
+ abort();
+ if (a[1] != 3)
+ abort();
+ if (a[2] != 2)
+ abort();
+ if (a[3] != 1)
+ abort();
+ exit(0);
+}