summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-18 22:37:38 +0000
committerChris Lattner <sabre@nondot.org>2009-04-18 22:37:38 +0000
commit508253d64bff0627b0a6fba872eaea6acb4c1647 (patch)
tree219b1cbed57074a6a069cdeab6c11f8f64618f43 /clang
parentb6e368235ad77c6eb28ee3e354707ef96009b9f0 (diff)
downloadbcm5719-llvm-508253d64bff0627b0a6fba872eaea6acb4c1647.tar.gz
bcm5719-llvm-508253d64bff0627b0a6fba872eaea6acb4c1647.zip
the scope checker does work with objc methods, add testcase.
llvm-svn: 69487
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp5
-rw-r--r--clang/test/SemaObjC/scope-check.m17
2 files changed, 15 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 9cc7c6bf6b7..abc508916ff 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -2908,11 +2908,6 @@ Sema::DeclPtrTy Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, DeclPtrTy D) {
/// TODO: statement expressions, for (int x[n]; ;), case.
-/// TODO: check the body of an objc method.
-
-// TODO: Consider wording like: "branching bypasses declaration of
-// variable-length"
-
/// JumpScopeChecker - This object is used by Sema to diagnose invalid jumps
/// into VLA and other protected scopes. For example, this rejects:
diff --git a/clang/test/SemaObjC/scope-check.m b/clang/test/SemaObjC/scope-check.m
index fb9bd4570dd..6659562bab0 100644
--- a/clang/test/SemaObjC/scope-check.m
+++ b/clang/test/SemaObjC/scope-check.m
@@ -44,8 +44,6 @@ L3: ;
} @catch (C *c) { // expected-note {{jump bypasses initialization of @catch block}}
L8: ;
}
-
-
}
void test2(int a) {
@@ -62,3 +60,18 @@ void test3() {
blargh: ;
} @catch (...) {}
}
+
+@interface Greeter
++ (void) hello;
+@end
+
+@implementation Greeter
++ (void) hello {
+
+ @try {
+ goto blargh; // expected-error {{illegal goto into protected scope}}
+ } @catch (...) { // expected-note {{jump bypasses initialization of @catch block}}
+ blargh: ;
+ }
+}
+@end
OpenPOWER on IntegriCloud