Support pointers in global variables

Этот коммит содержится в:
Ayke van Laethem 2018-08-24 02:54:37 +02:00
родитель 68b1100c89
коммит 1229667f7c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

Просмотреть файл

@ -863,6 +863,17 @@ func (c *Compiler) parseInitFunc(frame *Frame) error {
return err 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: default:
return errors.New("unknown init instruction: " + instr.String()) return errors.New("unknown init instruction: " + instr.String())
} }