CodeGen: Fix invalid bitcast in partial initialization of automatic arrary variable
Differential Revision: https://reviews.llvm.org/D39184 llvm-svn: 316353
This commit is contained in:
parent
f651698488
commit
bd3823618d
|
@ -1266,7 +1266,7 @@ void CodeGenFunction::EmitAutoVarInit(const AutoVarEmission &emission) {
|
|||
llvm::ConstantInt::get(IntPtrTy,
|
||||
getContext().getTypeSizeInChars(type).getQuantity());
|
||||
|
||||
llvm::Type *BP = Int8PtrTy;
|
||||
llvm::Type *BP = AllocaInt8PtrTy;
|
||||
if (Loc.getType() != BP)
|
||||
Loc = Builder.CreateBitCast(Loc, BP);
|
||||
|
||||
|
|
|
@ -58,3 +58,11 @@ void func2(void) {
|
|||
const int lvc = 4;
|
||||
lv1 = lvc;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define void @func3()
|
||||
// CHECK: %a = alloca [16 x [1 x float]], align 4, addrspace(5)
|
||||
// CHECK: %[[CAST:.+]] = bitcast [16 x [1 x float]] addrspace(5)* %a to i8 addrspace(5)*
|
||||
// CHECK: call void @llvm.memset.p5i8.i64(i8 addrspace(5)* %[[CAST]], i8 0, i64 64, i32 4, i1 false)
|
||||
void func3(void) {
|
||||
float a[16][1] = {{0.}};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue