From 1229667f7ca22898570466922538f8b056ee69dd Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Fri, 24 Aug 2018 02:54:37 +0200 Subject: [PATCH] Support pointers in global variables --- compiler.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/compiler.go b/compiler.go index 216a8268..cf378f48 100644 --- a/compiler.go +++ b/compiler.go @@ -863,6 +863,17 @@ func (c *Compiler) parseInitFunc(frame *Frame) error { return err } } + case *ssa.UnOp: + if instr.Op != token.MUL || instr.CommaOk { + return errors.New("init: unknown unop: " + instr.String()) + } + valPtr, err := c.initParseValue(instr.X, allocs) + if err != nil { + return err + } + // Assume it's a GEP instruction... + val := valPtr.Operand(0) + allocs[instr] = val default: return errors.New("unknown init instruction: " + instr.String()) }