zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 8ec109de3c975306e13f03789a229095a6bd40f1 (tree)
parent d1fa5692c685b804181d4658afce1e53ca74ec19
Author: Andrew Kelley <superjoe30@gmail.com>
Date:   Tue, 26 Apr 2016 11:39:31 -0700

ability to compare booleans

Diffstat:
Msrc/codegen.cpp | 3++-
Mtest/self_hosted.zig | 8++++++++
2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/codegen.cpp b/src/codegen.cpp @@ -1543,7 +1543,8 @@ static LLVMValueRef gen_cmp_expr(CodeGen *g, AstNode *node) { zig_unreachable(); } } else if (op1_type->id == TypeTableEntryIdPureError || - op1_type->id == TypeTableEntryIdPointer) + op1_type->id == TypeTableEntryIdPointer || + op1_type->id == TypeTableEntryIdBool) { LLVMIntPredicate pred = cmp_op_to_int_predicate(node->data.bin_op_expr.bin_op, false); return LLVMBuildICmp(g->builder, pred, val1, val2, ""); diff --git a/test/self_hosted.zig b/test/self_hosted.zig @@ -1368,3 +1368,11 @@ error NoMem; error CrappedOut; #static_eval_enable(false) fn returns_ten() -> %i32 { 10 } + + +#attribute("test") +fn bool_cmp() { + assert(test_bool_cmp(true, false) == false); +} +#static_eval_enable(false) +fn test_bool_cmp(a: bool, b: bool) -> bool { a == b }