enhance the goto checker to reject jumps across __block variable definitions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76376 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/block-misc.c b/test/Sema/block-misc.c
index 294c295..1f1cad4 100644
--- a/test/Sema/block-misc.c
+++ b/test/Sema/block-misc.c
@@ -185,3 +185,16 @@
   void (^const  blockA)(void) = ^{ };
   blockA = ^{ }; // expected-error {{read-only variable is not assignable}}
 }
+
+// rdar://7072507
+int test19() {
+  goto L0;       // expected-error {{illegal goto into protected scope}}
+  
+  __block int x; // expected-note {{jump bypasses setup of __block variable}}
+L0:
+  x = 0;
+  ^(){ ++x; }();
+  return x;
+}
+
+