diff options
author | Alan Zhao <ayzhao@google.com> | 2023-05-30 16:27:14 -0700 |
---|---|---|
committer | Alan Zhao <ayzhao@google.com> | 2023-05-31 13:52:45 -0700 |
commit | 1cf5188c72902e85e85095d788f5dfa138c320f8 (patch) | |
tree | 9cf0876aa9e0ffaf0027ee8081e44847bdf9d0a6 /clang/lib/Sema/SemaInit.cpp | |
parent | 1ab4438920b5ed9dc848b9a6f84c254f07a69f15 (diff) | |
download | llvm-1cf5188c72902e85e85095d788f5dfa138c320f8.zip llvm-1cf5188c72902e85e85095d788f5dfa138c320f8.tar.gz llvm-1cf5188c72902e85e85095d788f5dfa138c320f8.tar.bz2 |
[clang] Fix crash when passing a braced-init list to a parentehsized aggregate init expression
The previous code incorrectly assumed that we would never call
warnBracedScalarInit(...) with a EK_ParenAggInitMember. This patch fixes
the bug by warning when a scalar member is initialized via a braced-init
list when performing a parentehsized aggregate initialization. This
behavior is consistent with parentehsized list aggregate initialization.
Fixes #63008
Reviewed By: shafik
Differential Revision: https://reviews.llvm.org/D151763
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index eaddba3..f617cd0 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -1158,6 +1158,7 @@ static void warnBracedScalarInit(Sema &S, const InitializedEntity &Entity, case InitializedEntity::EK_Parameter_CF_Audited: case InitializedEntity::EK_TemplateParameter: case InitializedEntity::EK_Result: + case InitializedEntity::EK_ParenAggInitMember: // Extra braces here are suspicious. DiagID = diag::warn_braces_around_init; break; @@ -1192,7 +1193,6 @@ static void warnBracedScalarInit(Sema &S, const InitializedEntity &Entity, case InitializedEntity::EK_LambdaToBlockConversionBlockElement: case InitializedEntity::EK_Binding: case InitializedEntity::EK_StmtExprResult: - case InitializedEntity::EK_ParenAggInitMember: llvm_unreachable("unexpected braced scalar init"); } |