summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/Value.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-07-14 18:54:12 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-07-14 18:54:12 +0000
commit199b39e0638e1a6589015589cacfd1d2a97fd9b5 (patch)
treec3c22c38881520487620e8ac2af81e5129f6a797 /llvm/lib/IR/Value.cpp
parent703e488ed9229ac50a54c69f207074e7ec0715bd (diff)
downloadbcm5719-llvm-199b39e0638e1a6589015589cacfd1d2a97fd9b5.tar.gz
bcm5719-llvm-199b39e0638e1a6589015589cacfd1d2a97fd9b5.zip
Look through addrspacecast when checking isDereferenceablePointer
llvm-svn: 212971
Diffstat (limited to 'llvm/lib/IR/Value.cpp')
-rw-r--r--llvm/lib/IR/Value.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/IR/Value.cpp b/llvm/lib/IR/Value.cpp
index 35c241a608b..999685e15eb 100644
--- a/llvm/lib/IR/Value.cpp
+++ b/llvm/lib/IR/Value.cpp
@@ -543,6 +543,9 @@ static bool isDereferenceablePointer(const Value *V, const DataLayout *DL,
return true;
}
+ if (const AddrSpaceCastInst *ASC = dyn_cast<AddrSpaceCastInst>(V))
+ return isDereferenceablePointer(ASC->getOperand(0), DL, Visited);
+
// If we don't know, assume the worst.
return false;
}
OpenPOWER on IntegriCloud