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:
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 }