From 7258553528c4336186b63c6fae8fe3b8c8ee6525 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Wed, 5 Sep 2018 11:15:33 +0200 Subject: [PATCH] compiler: implement const pointers from integers These raw pointers are used for memory-mapped IO. --- compiler.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler.go b/compiler.go index e52ca05e1..cf10efeec 100644 --- a/compiler.go +++ b/compiler.go @@ -2414,7 +2414,8 @@ func (c *Compiler) parseConst(expr *ssa.Const) (llvm.Value, error) { return strObj, nil } else if typ.Kind() == types.UnsafePointer { if !expr.IsNil() { - return llvm.Value{}, errors.New("todo: non-null constant pointer") + value, _ := constant.Uint64Val(expr.Value) + return llvm.ConstIntToPtr(llvm.ConstInt(c.uintptrType, value, false), c.i8ptrType), nil } return llvm.ConstNull(c.i8ptrType), nil } else if typ.Info()&types.IsUnsigned != 0 {