mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
add support for zero initialized unions, patch by Tim Northover!
llvm-svn: 99818
This commit is contained in:
parent
cfd24dc84c
commit
f21a1afe81
@ -59,6 +59,7 @@ Constant *Constant::getNullValue(const Type *Ty) {
|
||||
case Type::PointerTyID:
|
||||
return ConstantPointerNull::get(cast<PointerType>(Ty));
|
||||
case Type::StructTyID:
|
||||
case Type::UnionTyID:
|
||||
case Type::ArrayTyID:
|
||||
case Type::VectorTyID:
|
||||
return ConstantAggregateZero::get(Ty);
|
||||
@ -944,7 +945,8 @@ bool ConstantFP::isValueValidForType(const Type *Ty, const APFloat& Val) {
|
||||
// Factory Function Implementation
|
||||
|
||||
ConstantAggregateZero* ConstantAggregateZero::get(const Type* Ty) {
|
||||
assert((Ty->isStructTy() || Ty->isArrayTy() || Ty->isVectorTy()) &&
|
||||
assert((Ty->isStructTy() || Ty->isUnionTy()
|
||||
|| Ty->isArrayTy() || Ty->isVectorTy()) &&
|
||||
"Cannot create an aggregate zero of non-aggregate type!");
|
||||
|
||||
LLVMContextImpl *pImpl = Ty->getContext().pImpl;
|
||||
|
@ -6,7 +6,9 @@
|
||||
|
||||
@union1 = constant union { i32, i8 } { i32 4 }
|
||||
@union2 = constant union { i32, i8 } insertvalue(union { i32, i8 } undef, i32 4, 0)
|
||||
@union3 = common global %union.anon zeroinitializer, align 8
|
||||
|
||||
define void @"Unions" () {
|
||||
ret void
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user