[clang][dataflow] Don't `assert` full LHS coverage in `optional` model
authorSam Estep <sam@samestep.com>
Fri, 10 Jun 2022 19:08:41 +0000 (19:08 +0000)
committerYitzhak Mandelbaum <yitzhakm@google.com>
Fri, 10 Jun 2022 19:10:20 +0000 (19:10 +0000)
Followup to D127434.

Reviewed By: ymandel, sgatev

Differential Revision: https://reviews.llvm.org/D127502

clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp

index 993d56e..f837fe3 100644 (file)
@@ -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));