From ed1386eeff0a3d0fbec74bbf775544104874cead Mon Sep 17 00:00:00 2001 From: Jimmi Holst Christensen Date: Tue, 6 Mar 2018 11:13:10 +0100 Subject: [PATCH] Simple translation of UO_LNot --- src/translate_c.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/translate_c.cpp b/src/translate_c.cpp index 9bea476352..ea3beb3548 100644 --- a/src/translate_c.cpp +++ b/src/translate_c.cpp @@ -1907,17 +1907,23 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc return nullptr; } } + case UO_LNot: case UO_Not: { Expr *op_expr = stmt->getSubExpr(); AstNode *sub_node = trans_expr(c, ResultUsedYes, scope, op_expr, TransRValue); if (sub_node == nullptr) return nullptr; - return trans_create_node_prefix_op(c, PrefixOpBinNot, sub_node); + + switch (stmt->getOpcode()) { + case UO_LNot: + return trans_create_node_prefix_op(c, PrefixOpBoolNot, sub_node); + case UO_Not: + return trans_create_node_prefix_op(c, PrefixOpBinNot, sub_node); + default: + zig_unreachable(); + } } - case UO_LNot: - emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_LNot"); - return nullptr; case UO_Real: emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Real"); return nullptr;