diff options
author | Haojian Wu <hokein.wu@gmail.com> | 2020-07-21 09:39:44 +0200 |
---|---|---|
committer | Haojian Wu <hokein.wu@gmail.com> | 2020-07-21 09:39:44 +0200 |
commit | 566b49884d69f88147c1ca18fd4512f73a3c15e3 (patch) | |
tree | 0b7f786b29d39ad66c4a1d8bedd78090ddbc4c27 /clang/lib/Sema/SemaInit.cpp | |
parent | 7af852dcbff9a4d5034e6deaadb7b630c548c6fa (diff) | |
download | llvm-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.cpp | 2 |
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) { |