[cfe-commits] r69165 - in /cfe/trunk: lib/Sema/SemaDecl.cpp test/SemaObjC/scope-check-try-catch.m
Eli Friedman
eli.friedman at gmail.com
Wed Apr 15 09:08:38 PDT 2009
On Wed, Apr 15, 2009 at 7:38 AM, Steve Naroff <snaroff at apple.com> wrote:
> Author: snaroff
> Date: Wed Apr 15 09:38:36 2009
> New Revision: 69165
>
> URL: http://llvm.org/viewvc/llvm-project?rev=69165&view=rev
> Log:
> Fix <rdar://problem/6791490> [clang10 regression] [sema] invalid illegal jump diagnostic.
>
> caused by: <rdar://problem/6252084> [sema] jumps into Obj-C exception blocks should be disallowed.
Ah, hmm, I figured there was a problem like this; I didn't reply
earlier because I didn't get a chance to test.
> Sema::RecursiveCalcLabelScopes() and Sema::RecursiveCalcJumpScopes() need to pop the ScopeStack within the statement iteration loop (was outside the loop).
That looks very wrong... if I'm not mistaken, the following testcase breaks.
int test4(int x) {
goto L; // expected-error{{illegal jump}}
int a[x];
test4(x);
L:
return sizeof a;
}
The correct solution is to use the correct parent in the PopScopeMap,
which for an @try is either the @try itself or the containing
ObjCAtTryStmt.
-Eli
More information about the cfe-commits
mailing list