]> granicus.if.org Git - clang/commit
Implement an indirect-goto optimization for goto *&&lbl and respect this
authorJohn McCall <rjmccall@apple.com>
Thu, 28 Oct 2010 08:53:48 +0000 (08:53 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 28 Oct 2010 08:53:48 +0000 (08:53 +0000)
commit95c225de9fa3d79f70ef5008c0279580a7d9dcad
treefd16d2e2abb0c26b1944dd5b666f9aa08404db14
parent3c7d7afd2530610e3d5678c4369731471d1bfb59
Implement an indirect-goto optimization for goto *&&lbl and respect this
in the scope checker.  With that done, turn an indirect goto into a
protected scope into a hard error;  otherwise IR generation has to start
worrying about declarations not dominating their scopes, as exemplified
in PR8473.

If this really affects anyone, I can probably adjust this to only hard-error
on possible indirect gotos into VLA scopes rather than arbitrary scopes.
But we'll see how people cope with the aggressive change on the marginal
feature.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117539 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Stmt.h
include/clang/Basic/DiagnosticSemaKinds.td
lib/AST/Stmt.cpp
lib/CodeGen/CGStmt.cpp
lib/Sema/JumpDiagnostics.cpp
test/Sema/scope-check.c
test/SemaCXX/scope-check.cpp