authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-03-06 11:13:10+01:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2018-03-06 11:13:10+01:00
loged1386eeff0a3d0fbec74bbf775544104874cead
tree55948767d7a0f8e2cb5e696bd5f12b36d21c053c
parentc787837ce5023fdef579bf92097216ce9dfacf34

Simple translation of UO_LNot


1 files changed, 10 insertions(+), 4 deletions(-)

src/translate_c.cpp+10-4
...@@ -1907,17 +1907,23 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc...@@ -1907,17 +1907,23 @@ static AstNode *trans_unary_operator(Context *c, ResultUsed result_used, TransSc
1907 return nullptr;1907 return nullptr;
1908 }1908 }
1909 }1909 }
1910 case UO_LNot:
1910 case UO_Not:1911 case UO_Not:
1911 {1912 {
1912 Expr *op_expr = stmt->getSubExpr();1913 Expr *op_expr = stmt->getSubExpr();
1913 AstNode *sub_node = trans_expr(c, ResultUsedYes, scope, op_expr, TransRValue);1914 AstNode *sub_node = trans_expr(c, ResultUsedYes, scope, op_expr, TransRValue);
1914 if (sub_node == nullptr)1915 if (sub_node == nullptr)
1915 return nullptr;1916 return nullptr;
1916 return trans_create_node_prefix_op(c, PrefixOpBinNot, sub_node);1917
1918 switch (stmt->getOpcode()) {
1919 case UO_LNot:
1920 return trans_create_node_prefix_op(c, PrefixOpBoolNot, sub_node);
1921 case UO_Not:
1922 return trans_create_node_prefix_op(c, PrefixOpBinNot, sub_node);
1923 default:
1924 zig_unreachable();
1925 }
1917 }1926 }
1918 case UO_LNot:
1919 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_LNot");
1920 return nullptr;
1921 case UO_Real:1927 case UO_Real:
1922 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Real");1928 emit_warning(c, stmt->getLocStart(), "TODO handle C translation UO_Real");
1923 return nullptr;1929 return nullptr;