summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/test/Sema/scope-check.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/Sema/scope-check.c b/clang/test/Sema/scope-check.c
index 1eb47e76439..1d1c5aa2f9b 100644
--- a/clang/test/Sema/scope-check.c
+++ b/clang/test/Sema/scope-check.c
@@ -164,3 +164,27 @@ L2:
return;
}
+// TODO: When and if gotos are allowed in blocks, this should work.
+void test11(int n) {
+ void *P = ^{
+ goto L1; // expected-error {{goto not allowed in block literal}}
+ L1:
+ goto L2; // expected-error {{goto not allowed in block literal}}
+ L2:
+ goto L3; // expected-error {{goto not allowed in block literal}}
+ // todo-error {{illegal goto into protected scope}}
+ int Arr[n]; // todo-note {{jump bypasses initialization of variable length array}}
+ L3:
+ goto L4; // expected-error {{goto not allowed in block literal}}
+ L4: return;
+ };
+}
+
+
+
+#if 0
+// in Sema::CheckVariableDeclaration
+// FIXME: This won't give the correct result for
+// int a[10][n];
+#endif
+
OpenPOWER on IntegriCloud