From 6f42ece56e7f4883b0fd4918aef144840ab8d61b Mon Sep 17 00:00:00 2001 From: Yulei Sui Date: Wed, 20 Jul 2022 15:04:40 +1000 Subject: [PATCH] refine field-sensitive and array-insensitive pta --- lib/WPA/Andersen.cpp | 2 +- lib/WPA/FlowSensitive.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/WPA/Andersen.cpp b/lib/WPA/Andersen.cpp index b1ed6bdc..4ca79247 100644 --- a/lib/WPA/Andersen.cpp +++ b/lib/WPA/Andersen.cpp @@ -425,7 +425,7 @@ bool Andersen::processGepPts(const PointsTo& pts, const GepCGEdge* edge) // base object is always returned. for (NodeID o : pts) { - if (consCG->isBlkObjOrConstantObj(o)) + if (consCG->isBlkObjOrConstantObj(o) || isFieldInsensitive(o)) { tmpDstPts.set(o); continue; diff --git a/lib/WPA/FlowSensitive.cpp b/lib/WPA/FlowSensitive.cpp index 8e08433b..8a435ef3 100644 --- a/lib/WPA/FlowSensitive.cpp +++ b/lib/WPA/FlowSensitive.cpp @@ -480,7 +480,7 @@ bool FlowSensitive::processGep(const GepSVFGNode* edge) { for (NodeID o : srcPts) { - if (isBlkObjOrConstantObj(o)) + if (isBlkObjOrConstantObj(o) || isFieldInsensitive(o)) { tmpDstPts.set(o); continue;