forked from OSchip/llvm-project
Fix isDereferenceablePointer not to try to take the size of an unsized type.
I'll add a test-case shortly. llvm-svn: 212687
This commit is contained in:
parent
2e42c34d05
commit
66e23f126d
|
@ -492,7 +492,8 @@ static bool isDereferenceablePointer(const Value *V, const DataLayout *DL,
|
||||||
if (const BitCastInst* BC = dyn_cast<BitCastInst>(V)) {
|
if (const BitCastInst* BC = dyn_cast<BitCastInst>(V)) {
|
||||||
Type *STy = BC->getSrcTy()->getPointerElementType(),
|
Type *STy = BC->getSrcTy()->getPointerElementType(),
|
||||||
*DTy = BC->getDestTy()->getPointerElementType();
|
*DTy = BC->getDestTy()->getPointerElementType();
|
||||||
if ((DL->getTypeStoreSize(STy) >=
|
if (STy->isSized() && DTy->isSized() &&
|
||||||
|
(DL->getTypeStoreSize(STy) >=
|
||||||
DL->getTypeStoreSize(DTy)) &&
|
DL->getTypeStoreSize(DTy)) &&
|
||||||
(DL->getABITypeAlignment(STy) >=
|
(DL->getABITypeAlignment(STy) >=
|
||||||
DL->getABITypeAlignment(DTy)))
|
DL->getABITypeAlignment(DTy)))
|
||||||
|
|
Loading…
Reference in New Issue