diff options
author | Nick Desaulniers <ndesaulniers@google.com> | 2023-06-08 11:30:00 -0700 |
---|---|---|
committer | Nick Desaulniers <ndesaulniers@google.com> | 2023-06-08 13:20:24 -0700 |
commit | 9daab7fb02d2a7340dbc78d15d248ef9aaf1214c (patch) | |
tree | 3881344e6b7e6c918b09b81720e893512745228b /clang/lib/AST/ExprConstant.cpp | |
parent | 4524a3159e8407d2b453293eff694f3a1534462d (diff) | |
download | llvm-9daab7fb02d2a7340dbc78d15d248ef9aaf1214c.zip llvm-9daab7fb02d2a7340dbc78d15d248ef9aaf1214c.tar.gz llvm-9daab7fb02d2a7340dbc78d15d248ef9aaf1214c.tar.bz2 |
[ExprConstant] fix ICE from Evaluate on _Atomic structs
Fixes two crashes reported by @efriedma and @ahatanak, as per
@ahatanak's analysis.
Link: https://reviews.llvm.org/D151587#4397446
Link: https://reviews.llvm.org/D151587#4399684
Reviewed By: ahatanak, aaron.ballman
Differential Revision: https://reviews.llvm.org/D152303
Diffstat (limited to 'clang/lib/AST/ExprConstant.cpp')
-rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 115460f..b88b84a 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -15064,6 +15064,7 @@ static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E) { E, Unqual, ScopeKind::FullExpression, LV); if (!EvaluateAtomic(E, &LV, Value, Info)) return false; + Result = Value; } else { if (!EvaluateAtomic(E, nullptr, Result, Info)) return false; |