Empty struct literal values are initialized to zero
This commit is contained in:
parent
cd688c91af
commit
06df727f7f
|
@ -204,8 +204,15 @@ func (this *generator) generateLiteralStructLoc (literal *entity.LiteralStruct)
|
|||
structure := this.blockManager.newAllocaFront(irType)
|
||||
|
||||
for index, member := range literal.Members {
|
||||
irMember, err := this.generateExpression(member.Value)
|
||||
if err != nil { return nil, err }
|
||||
var irMember llvm.Value
|
||||
if value, ok := literal.Members[member.Name] {
|
||||
irMember, err = this.generateExpression(value)
|
||||
if err != nil { return nil, err }
|
||||
} else {
|
||||
irMemberType, err := this.generateType(member.Type())
|
||||
if err != nil { return nil, err }
|
||||
irMember = llvm.NewZeroInitializer(irMemberType)
|
||||
}
|
||||
|
||||
elementPointer := this.blockManager.NewGetElementPtr (
|
||||
irType, structure,
|
||||
|
|
Loading…
Reference in New Issue