aboutsummaryrefslogtreecommitdiff
path: root/SingleSource/Regression/C/gcc-c-torture/execute/pr24135.c
diff options
context:
space:
mode:
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/pr24135.c')
-rw-r--r--SingleSource/Regression/C/gcc-c-torture/execute/pr24135.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/pr24135.c b/SingleSource/Regression/C/gcc-c-torture/execute/pr24135.c
new file mode 100644
index 00000000..f1d12983
--- /dev/null
+++ b/SingleSource/Regression/C/gcc-c-torture/execute/pr24135.c
@@ -0,0 +1,44 @@
+/* { dg-require-effective-target trampolines } */
+
+extern void abort (void);
+
+int x(int a, int b)
+{
+ __label__ xlab;
+ __label__ xlab2;
+
+ void y(int b)
+ {
+ switch (b)
+ {
+ case 1: goto xlab;
+ case 2: goto xlab;
+ }
+ }
+
+ a = a + 2;
+ y (b);
+
+ xlab:
+ return a;
+
+ xlab2:
+ a++;
+ return a;
+
+}
+
+int main ()
+{
+ int i, j;
+
+ for (j = 1; j <= 2; ++j)
+ for (i = 1; i <= 2; ++i)
+ {
+ int a = x (j, i);
+ if (a != 2 + j)
+ abort ();
+ }
+
+ return 0;
+}