diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-18 22:37:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-18 22:37:38 +0000 |
commit | 508253d64bff0627b0a6fba872eaea6acb4c1647 (patch) | |
tree | 219b1cbed57074a6a069cdeab6c11f8f64618f43 /clang | |
parent | b6e368235ad77c6eb28ee3e354707ef96009b9f0 (diff) | |
download | bcm5719-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.cpp | 5 | ||||
-rw-r--r-- | clang/test/SemaObjC/scope-check.m | 17 |
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 |