summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-02-09 20:13:14 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-02-09 20:13:14 +0000
commit25b0742603808470660680f1d87c066ea1e5b59c (patch)
treefbc4ee8e0df5155ad78da9a64cbd8fb8c4c1461a /clang/lib/Sema/SemaDeclCXX.cpp
parent1fba8711b0fc78ff6ee56cd640da2f2e770e4eb1 (diff)
downloadbcm5719-llvm-25b0742603808470660680f1d87c066ea1e5b59c.tar.gz
bcm5719-llvm-25b0742603808470660680f1d87c066ea1e5b59c.zip
Make sure a variable with a C++ direct initializer triggers jump scope checking. Fixes PR10620 / <rdar://problem/9958362> .
llvm-svn: 150204
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 8ba84fe86a5..ec92470ae1f 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -16,6 +16,7 @@
#include "clang/Sema/Scope.h"
#include "clang/Sema/Initialization.h"
#include "clang/Sema/Lookup.h"
+#include "clang/Sema/ScopeInfo.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTMutationListener.h"
@@ -9223,6 +9224,9 @@ void Sema::AddCXXDirectInitializerToDecl(Decl *RealDecl,
return;
}
+ if (VDecl->hasLocalStorage())
+ getCurFunction()->setHasBranchProtectedScope();
+
bool IsDependent = false;
for (unsigned I = 0, N = Exprs.size(); I != N; ++I) {
if (DiagnoseUnexpandedParameterPack(Exprs.get()[I], UPPC_Expression)) {
OpenPOWER on IntegriCloud