From a9ad689e352dd1037f947dacc7d01c091b67e00c Mon Sep 17 00:00:00 2001 From: Sam Estep Date: Fri, 10 Jun 2022 19:08:41 +0000 Subject: [PATCH] [clang][dataflow] Don't `assert` full LHS coverage in `optional` model Followup to D127434. Reviewed By: ymandel, sgatev Differential Revision: https://reviews.llvm.org/D127502 --- .../lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp b/clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp index 993d56e..f837fe3 100644 --- a/clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp +++ b/clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp @@ -450,7 +450,8 @@ void transferAssignment(const CXXOperatorCallExpr *E, BoolValue &HasValueVal, auto *OptionalLoc = State.Env.getStorageLocation(*E->getArg(0), SkipPast::Reference); - assert(OptionalLoc != nullptr); + if (OptionalLoc == nullptr) + return; State.Env.setValue(*OptionalLoc, createOptionalValue(State.Env, HasValueVal)); -- 2.7.4