forked from OSchip/llvm-project
parent
0b955fd2d5
commit
feeab9f753
|
@ -703,7 +703,7 @@ void Interpreter::visitAllocationInst(AllocationInst &I) {
|
||||||
unsigned NumElements = getOperandValue(I.getOperand(0), SF).UIntVal;
|
unsigned NumElements = getOperandValue(I.getOperand(0), SF).UIntVal;
|
||||||
|
|
||||||
// Allocate enough memory to hold the type...
|
// Allocate enough memory to hold the type...
|
||||||
void *Memory = malloc(NumElements * TD.getTypeSize(Ty));
|
void *Memory = malloc(NumElements * (size_t)TD.getTypeSize(Ty));
|
||||||
|
|
||||||
GenericValue Result = PTOGV(Memory);
|
GenericValue Result = PTOGV(Memory);
|
||||||
assert(Result.PointerVal != 0 && "Null pointer returned by malloc!");
|
assert(Result.PointerVal != 0 && "Null pointer returned by malloc!");
|
||||||
|
@ -736,9 +736,9 @@ GenericValue Interpreter::executeGEPOperation(Value *Ptr, gep_type_iterator I,
|
||||||
const StructLayout *SLO = TD.getStructLayout(STy);
|
const StructLayout *SLO = TD.getStructLayout(STy);
|
||||||
|
|
||||||
const ConstantUInt *CPU = cast<ConstantUInt>(I.getOperand());
|
const ConstantUInt *CPU = cast<ConstantUInt>(I.getOperand());
|
||||||
unsigned Index = CPU->getValue();
|
unsigned Index = unsigned(CPU->getValue());
|
||||||
|
|
||||||
Total += SLO->MemberOffsets[Index];
|
Total += (PointerTy)SLO->MemberOffsets[Index];
|
||||||
} else {
|
} else {
|
||||||
const SequentialType *ST = cast<SequentialType>(*I);
|
const SequentialType *ST = cast<SequentialType>(*I);
|
||||||
// Get the index number for the array... which must be long type...
|
// Get the index number for the array... which must be long type...
|
||||||
|
@ -756,7 +756,7 @@ GenericValue Interpreter::executeGEPOperation(Value *Ptr, gep_type_iterator I,
|
||||||
case Type::UIntTyID: Idx = IdxGV.UIntVal; break;
|
case Type::UIntTyID: Idx = IdxGV.UIntVal; break;
|
||||||
case Type::ULongTyID: Idx = IdxGV.ULongVal; break;
|
case Type::ULongTyID: Idx = IdxGV.ULongVal; break;
|
||||||
}
|
}
|
||||||
Total += TD.getTypeSize(ST->getElementType())*Idx;
|
Total += PointerTy(TD.getTypeSize(ST->getElementType())*Idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue