aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/goto.cpp
AgeCommit message (Collapse)Author
2012-04-13When we're flagging a protected scope to prevent jumps into theJohn McCall
shadow of a block expression with non-trivial destructed cleanups, we should flag that in the enclosing function, not in the block that we're about to pop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154646 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-09Make sure a variable with a C++ direct initializer triggers jump scope ↵Eli Friedman
checking. Fixes PR10620 / <rdar://problem/9958362> . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150204 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-24Minor fix in the injection of labels, since we want to look at the ↵Douglas Gregor
redeclaration context of each declaration in the identifier chain. Should fix Linux self-host git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128210 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-24Fix the insertion of label declarations into the identifier chain inDouglas Gregor
the case where we only have a single identifier with that name in the chain. Fixes PR9463 for real this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128208 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-23Unbreak testDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128168 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-16Make sure that we always pop a function's scope *before* we callDouglas Gregor
ActOnFinishFunctionBody/ActOnBlockStmtExpr. This way, we ensure that we diagnose undefined labels before the jump-scope checker gets run, since the jump-scope checker requires (as its invariant) that all of the GotoStmts be wired up correctly. Fixes PR9495. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127738 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-16When we're inserting a synthesized label declaration for aDouglas Gregor
forward-looking "goto" statement, make sure to insert it *after* the last declaration in the identifier resolver's declaration chain that is either outside of the function/block/method's scope or that is declared in that function/block/method's specific scope. Previously, we could end up inserting the label ahead of declarations in inner scopes, confusing C++ name lookup. Fixes PR9491/<rdar://problem/9140426> and <rdar://problem/9135994>. Note that the crash-on-invalid PR9495 is *not* fixed. That's a separate issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127737 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-14When synthesizing a label declaration based on a goto statement thatDouglas Gregor
cannot yet be resolved, be sure to push the new label declaration into the right place within the identifier chain. Otherwise, name lookup in C++ gets confused when searching for names that are lexically closer than the label. Fixes PR9463. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127623 91177308-0d34-0410-b5e6-96231b3b80d8