aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920501-3.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920501-3.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920501-3.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920501-3.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920501-3.c
new file mode 100644
index 000000000..1031d7378
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920501-3.c
@@ -0,0 +1,35 @@
+int tab[9];
+execute(oip, ip)
+ unsigned short *oip, *ip;
+{
+#ifndef NO_LABEL_VALUES
+ int x = 0;
+ int *xp = tab;
+base:
+ x++;
+ if (x == 4)
+ {
+ *xp = 0;
+ return;
+ }
+ *xp++ = ip - oip;
+ goto *(&&base + *ip++);
+#else
+ tab[0] = 0;
+ tab[1] = 1;
+ tab[2] = 2;
+ tab[3] = 0;
+#endif
+}
+
+main()
+{
+ unsigned short ip[10];
+ int i;
+ for (i = 0; i < 10; i++)
+ ip[i] = 0;
+ execute(ip, ip);
+ if (tab[0] != 0 || tab[1] != 1 || tab[2] != 2 || tab[3] != 0)
+ abort();
+ exit(0);
+}