Implement == and != for booleans.
Этот коммит содержится в:
Ayke van Laethem 2018-10-20 15:47:59 +02:00
родитель 6a95b84cd8
коммит 19f7927515
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

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

@ -2823,6 +2823,16 @@ func (c *Compiler) parseBinOp(frame *Frame, binop *ssa.BinOp) (llvm.Value, error
default:
return llvm.Value{}, errors.New("todo: binop on float: " + binop.Op.String())
}
} else if typ.Info()&types.IsBoolean != 0 {
// Operations on booleans
switch binop.Op {
case token.EQL: // ==
return c.builder.CreateICmp(llvm.IntEQ, x, y, ""), nil
case token.NEQ: // !=
return c.builder.CreateICmp(llvm.IntNE, x, y, ""), nil
default:
return llvm.Value{}, errors.New("todo: binop on boolean: " + binop.Op.String())
}
} else if typ.Kind() == types.UnsafePointer {
// Operations on pointers
switch binop.Op {