aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorHaojian Wu <hokein.wu@gmail.com>2020-07-21 09:39:44 +0200
committerHaojian Wu <hokein.wu@gmail.com>2020-07-21 09:39:44 +0200
commit566b49884d69f88147c1ca18fd4512f73a3c15e3 (patch)
tree0b7f786b29d39ad66c4a1d8bedd78090ddbc4c27 /clang/lib/Sema/SemaInit.cpp
parent7af852dcbff9a4d5034e6deaadb7b630c548c6fa (diff)
downloadllvm-566b49884d69f88147c1ca18fd4512f73a3c15e3.zip
llvm-566b49884d69f88147c1ca18fd4512f73a3c15e3.tar.gz
llvm-566b49884d69f88147c1ca18fd4512f73a3c15e3.tar.bz2
[clang] Set the error-bit for ill-formed semantic InitListExpr.
When a semantic checking fails on a syntactic InitListExpr, we will get an ill-formed semantic InitListExpr (e.g. some inits are nullptr), using this semantic InitListExpr in clang (without setting the err-bits) is crashy. Differential Revision: https://reviews.llvm.org/D84140
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 eb07de65..e2f67e9 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -962,6 +962,8 @@ InitListChecker::InitListChecker(Sema &S, const InitializedEntity &Entity,
FillInEmptyInitializations(Entity, FullyStructuredList,
RequiresSecondPass, nullptr, 0);
}
+ if (hadError && FullyStructuredList)
+ FullyStructuredList->markError();
}
int InitListChecker::numArrayElements(QualType DeclType) {