diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-07-14 18:54:12 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-07-14 18:54:12 +0000 |
commit | 199b39e0638e1a6589015589cacfd1d2a97fd9b5 (patch) | |
tree | c3c22c38881520487620e8ac2af81e5129f6a797 /llvm/lib/IR/Value.cpp | |
parent | 703e488ed9229ac50a54c69f207074e7ec0715bd (diff) | |
download | bcm5719-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.cpp | 3 |
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; } |