mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
[IR] Add a few asserts to provide a better failure signature if you try to create a load/store/alloca with no alignment or insertion position
If no alignment is specified we try to find the datalayout by using the insert position to get the module so we can get the datalayout. But if those are null, then we deference a null pointer. This patch adds asserts to make the failure a little more obvious than just seg faulting. Differential Revision: https://reviews.llvm.org/D83829
This commit is contained in:
parent
cc9b585279
commit
a8838d73c2
@ -1262,11 +1262,15 @@ static Value *getAISize(LLVMContext &Context, Value *Amt) {
|
||||
}
|
||||
|
||||
static Align computeAllocaDefaultAlign(Type *Ty, BasicBlock *BB) {
|
||||
assert(BB && "Insertion BB cannot be null when alignment not provided!");
|
||||
assert(BB->getParent() &&
|
||||
"BB must be in a Function when alignment not provided!");
|
||||
const DataLayout &DL = BB->getModule()->getDataLayout();
|
||||
return DL.getPrefTypeAlign(Ty);
|
||||
}
|
||||
|
||||
static Align computeAllocaDefaultAlign(Type *Ty, Instruction *I) {
|
||||
assert(I && "Insertion position cannot be null when alignment not provided!");
|
||||
return computeAllocaDefaultAlign(Ty, I->getParent());
|
||||
}
|
||||
|
||||
@ -1342,11 +1346,15 @@ void LoadInst::AssertOK() {
|
||||
}
|
||||
|
||||
static Align computeLoadStoreDefaultAlign(Type *Ty, BasicBlock *BB) {
|
||||
assert(BB && "Insertion BB cannot be null when alignment not provided!");
|
||||
assert(BB->getParent() &&
|
||||
"BB must be in a Function when alignment not provided!");
|
||||
const DataLayout &DL = BB->getModule()->getDataLayout();
|
||||
return DL.getABITypeAlign(Ty);
|
||||
}
|
||||
|
||||
static Align computeLoadStoreDefaultAlign(Type *Ty, Instruction *I) {
|
||||
assert(I && "Insertion position cannot be null when alignment not provided!");
|
||||
return computeLoadStoreDefaultAlign(Ty, I->getParent());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user