mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-10 02:36:06 +00:00
Fix pr6198 by moving the isSized() check to an outer conditional.
The testcase from pr6198 does not crash for me -- I don't know what's up with that -- so I'm not adding it to the tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94984 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d75ff3104c
commit
3cb8509b68
@ -95,13 +95,15 @@ bool llvm::isSafeToLoadUnconditionally(Value *V, Instruction *ScanFrom,
|
||||
BaseAlign = GV->getAlignment();
|
||||
}
|
||||
}
|
||||
if (TD && BaseType && BaseAlign == 0)
|
||||
BaseAlign = TD->getPrefTypeAlignment(BaseType);
|
||||
|
||||
if (BaseType && Align <= BaseAlign) {
|
||||
if (!TD)
|
||||
return true; // Loading directly from an alloca or global is OK.
|
||||
if (BaseType->isSized()) {
|
||||
if (BaseType && BaseType->isSized()) {
|
||||
if (TD && BaseAlign == 0)
|
||||
BaseAlign = TD->getPrefTypeAlignment(BaseType);
|
||||
|
||||
if (Align <= BaseAlign) {
|
||||
if (!TD)
|
||||
return true; // Loading directly from an alloca or global is OK.
|
||||
|
||||
// Check if the load is within the bounds of the underlying object.
|
||||
const PointerType *AddrTy = cast<PointerType>(V->getType());
|
||||
uint64_t LoadSize = TD->getTypeStoreSize(AddrTy->getElementType());
|
||||
|
Loading…
x
Reference in New Issue
Block a user