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