conceptually correct. Review appreciated (Chris, Eli, Anders).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95401
91177308-0d34-0410-b5e6-
96231b3b80d8
// Unknown builtin, for now just dump it out and return undef.
if (hasAggregateLLVMType(E->getType()))
- return RValue::getAggregate(CreateTempAlloca(ConvertType(E->getType())));
+ return RValue::getAggregate(CreateTempAlloca(ConvertTypeForMem(
+ E->getType())));
return RValue::get(llvm::UndefValue::get(ConvertType(E->getType())));
}
llvm::Value *Vec = EmitScalarExpr(E->getBase());
// Store the vector to memory (because LValue wants an address).
- llvm::Value *VecMem =CreateTempAlloca(ConvertType(E->getBase()->getType()));
+ llvm::Value *VecMem = CreateTempAlloca(ConvertTypeForMem(
+ E->getBase()->getType()));
Builder.CreateStore(Vec, VecMem);
Base = LValue::MakeAddr(VecMem, Qualifiers());
}
// Get the member function pointer.
llvm::Value *MemFnPtr =
- CreateTempAlloca(ConvertType(MemFnExpr->getType()), "mem.fn");
+ CreateTempAlloca(ConvertTypeForMem(MemFnExpr->getType()), "mem.fn");
EmitAggExpr(MemFnExpr, MemFnPtr, /*VolatileDest=*/false);
// Emit the 'this' pointer.
// Fast enumeration state.
QualType StateTy = getContext().getObjCFastEnumerationStateType();
- llvm::AllocaInst *StatePtr = CreateTempAlloca(ConvertType(StateTy),
- "state.ptr");
+ llvm::AllocaInst *StatePtr = CreateTempAlloca(ConvertTypeForMem(
+ StateTy), "state.ptr");
StatePtr->setAlignment(getContext().getTypeAlign(StateTy) >> 3);
EmitMemSetToZero(StatePtr, StateTy);
getContext().getConstantArrayType(getContext().getObjCIdType(),
llvm::APInt(32, NumItems),
ArrayType::Normal, 0);
- llvm::Value *ItemsPtr = CreateTempAlloca(ConvertType(ItemsTy), "items.ptr");
+ llvm::Value *ItemsPtr = CreateTempAlloca(ConvertTypeForMem(
+ ItemsTy), "items.ptr");
llvm::Value *Collection = EmitScalarExpr(S.getCollection());