================
@@ -1044,6 +1044,26 @@ transferAssertionResultOperatorBoolCall(const
CXXMemberCallExpr *Expr,
State.Env.setValue(*Expr, Res);
}
+static void transferDerefCall(const CallExpr *Expr,
+ const MatchFinder::MatchResult &,
+ LatticeTransferState &State) {
+ auto *StatusOrLoc = State.Env.get<RecordStorageLocation>(*Expr->getArg(0));
+
+ if (StatusOrLoc && State.Env.getStorageLocation(*Expr) == nullptr)
+ State.Env.setStorageLocation(*Expr,
+ StatusOrLoc->getSyntheticField("value"));
+}
+
+static void transferArrowCall(const CallExpr *Expr,
+ const MatchFinder::MatchResult &,
+ LatticeTransferState &State) {
+ auto *StatusOrLoc = State.Env.get<RecordStorageLocation>(*Expr->getArg(0));
+ if (!StatusOrLoc)
+ return;
+ State.Env.setValue(*Expr, State.Env.create<PointerValue>(
+ StatusOrLoc->getSyntheticField("value")));
+}
----------------
fmayer wrote:
done
https://github.com/llvm/llvm-project/pull/170950
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits