sgatev added inline comments.
================ Comment at: clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp:524 -void transferSwap(const StorageLocation &OptionalLoc1, - const StorageLocation &OptionalLoc2, - LatticeTransferState &State) { - auto *OptionalVal1 = State.Env.getValue(OptionalLoc1); - assert(OptionalVal1 != nullptr); +void transferSwap(const Expr &E1, SkipPast E1Skip, const Expr &E2, + Environment &Env) { ---------------- What do you think about passing `const StorageLocation*` instead of `const Expr&`? This way we don't need to pass `E1Skip`. ================ Comment at: clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp:534 + if (Loc2 != nullptr) + Env.setValue(*Loc2, createOptionalValue(Env, Env.makeAtomicBoolValue())); + return; ---------------- Any reason to not set a fresh value for `Loc1` in this case (similarly a fresh value for `Loc2` below)? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142710/new/ https://reviews.llvm.org/D142710 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits