mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 00:32:55 +00:00
do not dereference an extra layer of pointers to determine if an external
call can modify a memory location. This fixes test/Regression/Analysis/Andersens/modreftest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21088 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7759adfb4d
commit
8a9763c3cd
@ -374,19 +374,12 @@ Andersens::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
|
||||
Node *N1 = getNode(P);
|
||||
bool PointsToUniversalSet = false;
|
||||
|
||||
for (Node::iterator NI = N1->begin(), E = N1->end(); NI != E; ++NI) {
|
||||
Node *PN = *NI;
|
||||
if (PN->begin() == PN->end())
|
||||
continue; // P doesn't point to anything.
|
||||
// Get the first pointee.
|
||||
Node *FirstPointee = *PN->begin();
|
||||
if (FirstPointee == &GraphNodes[UniversalSet]) {
|
||||
PointsToUniversalSet = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (N1->begin() == N1->end())
|
||||
return NoModRef; // P doesn't point to anything.
|
||||
|
||||
if (!PointsToUniversalSet)
|
||||
// Get the first pointee.
|
||||
Node *FirstPointee = *N1->begin();
|
||||
if (FirstPointee != &GraphNodes[UniversalSet])
|
||||
return NoModRef; // P doesn't point to the universal set.
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user