motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit ed1386eeff0a3d0fbec74bbf775544104874cead (tree)
parent c787837ce5023fdef579bf92097216ce9dfacf34
Author: Jimmi Holst Christensen <jhc@liab.dk>
Date:   Tue,  6 Mar 2018 11:13:10 +0100

Simple translation of UO_LNot

Diffstat:
Msrc/translate_c.cpp | 14++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git 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;