summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2015-01-28 22:08:10 +0000
committerFariborz Jahanian <fjahanian@apple.com>2015-01-28 22:08:10 +0000
commit36f7f1303fa6720366f5c2f8d09d58f06f87fceb (patch)
tree9c8fba4ae7904720422541fa2db415dc060f73b1 /clang/lib/Sema/SemaInit.cpp
parent1ae689c2b8759e4cb5bc9ff334b02c58752f2717 (diff)
downloadbcm5719-llvm-36f7f1303fa6720366f5c2f8d09d58f06f87fceb.tar.gz
bcm5719-llvm-36f7f1303fa6720366f5c2f8d09d58f06f87fceb.zip
CXX [qoi]. Prevent a crash when initializer expression is
invalid when trying to create temporary copy of the invalid initializer. rdar://19109967 llvm-svn: 227378
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index c6d9a544c4b..089746725f3 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -5063,6 +5063,8 @@ static ExprResult CopyObject(Sema &S,
const InitializedEntity &Entity,
ExprResult CurInit,
bool IsExtraneousCopy) {
+ if (CurInit.isInvalid())
+ return CurInit;
// Determine which class type we're copying to.
Expr *CurInitExpr = (Expr *)CurInit.get();
CXXRecordDecl *Class = nullptr;
OpenPOWER on IntegriCloud