llgo/ssa: Advance fix
This commit is contained in:
@@ -503,11 +503,11 @@ func (b Builder) Advance(ptr Expr, offset Expr) Expr {
|
|||||||
}
|
}
|
||||||
var elem llvm.Type
|
var elem llvm.Type
|
||||||
var prog = b.Prog
|
var prog = b.Prog
|
||||||
var telem = ptr.raw.Type.(*types.Pointer).Elem()
|
switch t := ptr.raw.Type.(type) {
|
||||||
if telem == types.Typ[types.Invalid] { // void
|
case *types.Basic: // void
|
||||||
elem = prog.tyInt8()
|
elem = prog.tyInt8()
|
||||||
} else {
|
default:
|
||||||
elem = prog.rawType(telem).ll
|
elem = prog.rawType(t.(*types.Pointer).Elem()).ll
|
||||||
}
|
}
|
||||||
ret := llvm.CreateGEP(b.impl, elem, ptr.impl, []llvm.Value{offset.impl})
|
ret := llvm.CreateGEP(b.impl, elem, ptr.impl, []llvm.Value{offset.impl})
|
||||||
return Expr{ret, ptr.Type}
|
return Expr{ret, ptr.Type}
|
||||||
|
|||||||
Reference in New Issue
Block a user