Fix duplicated pointer types
This commit is contained in:
parent
e32655e285
commit
dae023b2af
|
@ -30,7 +30,7 @@ func (this *generator) generateType (ty entity.Type) (llvm.Type, error) {
|
|||
case *entity.TypeStruct:
|
||||
return this.generateTypeStruct(ty.(*entity.TypeStruct))
|
||||
case *entity.TypeInterface:
|
||||
return this.generateTypeInerface(ty.(*entity.TypeInterface))
|
||||
return this.generateTypeInterface(ty.(*entity.TypeInterface))
|
||||
case *entity.TypeInt:
|
||||
return this.generateTypeInt(ty.(*entity.TypeInt))
|
||||
case *entity.TypeFloat:
|
||||
|
|
|
@ -11,7 +11,7 @@ func (this *generator) generateTypeNamed (ty *entity.TypeNamed) (llvm.Type, erro
|
|||
}
|
||||
|
||||
func (this *generator) generateTypePointer (ty *entity.TypePointer) (llvm.Type, error) {
|
||||
return llvm.Pointer, nil
|
||||
return new(llvm.TypePointer), nil
|
||||
}
|
||||
|
||||
func (this *generator) generateTypeSlice (ty *entity.TypeSlice) (llvm.Type, error) {
|
||||
|
@ -46,7 +46,7 @@ func (this *generator) generateTypeStruct (ty *entity.TypeStruct) (llvm.Type, er
|
|||
return irStruct, nil
|
||||
}
|
||||
|
||||
func (this *generator) generateTypeInerface (ty *entity.TypeInterface) (llvm.Type, error) {
|
||||
func (this *generator) generateTypeInterface (ty *entity.TypeInterface) (llvm.Type, error) {
|
||||
irStruct := &llvm.TypeStruct {
|
||||
Fields: make([]llvm.Type, len(ty.Behaviors) + 1),
|
||||
}
|
||||
|
|
|
@ -72,10 +72,11 @@ define void @main() {
|
|||
%1 = alloca %A
|
||||
%2 = load %A, ptr %1
|
||||
%3 = alloca %B
|
||||
%4 = load %B, ptr %1
|
||||
%4 = load %B, ptr %3
|
||||
%5 = alloca %C
|
||||
%6 = load %C, ptr %5
|
||||
ret void
|
||||
}
|
||||
`,
|
||||
`
|
||||
A: *Byte
|
||||
|
|
|
@ -15,12 +15,10 @@ type AbstractType struct {
|
|||
}
|
||||
|
||||
func (this *AbstractType) Name () string {
|
||||
// fmt.Printf("%p.Name %s\n", this, this.name)
|
||||
return this.name
|
||||
}
|
||||
|
||||
func (this *AbstractType) SetName (name string) {
|
||||
// fmt.Printf("%p.SetName %s\n", this, name)
|
||||
this.name = name
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue