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)
|
structure := this.blockManager.newAllocaFront(irType)
|
||||||
|
|
||||||
for index, member := range literal.Members {
|
for index, member := range literal.Members {
|
||||||
irMember, err := this.generateExpression(member.Value)
|
var irMember llvm.Value
|
||||||
if err != nil { return nil, err }
|
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 (
|
elementPointer := this.blockManager.NewGetElementPtr (
|
||||||
irType, structure,
|
irType, structure,
|
||||||
|
Loading…
Reference in New Issue
Block a user