Author: dingfei Date: 2023-08-30T17:14:38+08:00 New Revision: 5b3f41c55d9261dcb682d60a4258fa2c30fd50c8
URL: https://github.com/llvm/llvm-project/commit/5b3f41c55d9261dcb682d60a4258fa2c30fd50c8 DIFF: https://github.com/llvm/llvm-project/commit/5b3f41c55d9261dcb682d60a4258fa2c30fd50c8.diff LOG: [analyzer][NFC] Workaround miscompilation on recent MSVC SVal argument 'Cond' passed in is corrupted in release mode with exception handling enabled (result in an UndefinedSVal), or changing lambda capture inside the callee can workaround this. Known problematic VS Versions: - VS 2022 17.4.4 - VS 2022 17.5.4 - VS 2022 17.7.2 Verified working VS Version: - VS 2019 16.11.25 Fixes https://github.com/llvm/llvm-project/issues/62130 Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D159163 Added: Modified: clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp Removed: ################################################################################ diff --git a/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp b/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp index 9ef3455a110a84..c0b3f346b654df 100644 --- a/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp +++ b/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp @@ -91,7 +91,7 @@ ConstraintManager::assumeDualImpl(ProgramStateRef &State, ConstraintManager::ProgramStatePair ConstraintManager::assumeDual(ProgramStateRef State, DefinedSVal Cond) { - auto AssumeFun = [&](bool Assumption) { + auto AssumeFun = [&, Cond](bool Assumption) { return assumeInternal(State, Cond, Assumption); }; return assumeDualImpl(State, AssumeFun); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits