authorgravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2020-01-03 16:41:32-07:00
committergravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2020-01-03 16:41:32-07:00
log7838031b436fa403c628af46f62c7eb914808fd7
tree6e2129590c51921c820aac613f4a23a883affaab
parentb91eaba38c6661b5eb3558b0c0b88a22a50d2a57

use @intCast instead of @as for shift rhs


1 files changed, 15 insertions(+), 15 deletions(-)

src-self-hosted/translate_c.zig+15-15
...@@ -2778,13 +2778,13 @@ fn transCreateCompoundAssign(...@@ -2778,13 +2778,13 @@ fn transCreateCompoundAssign(
2778 try transExpr(rp, scope, rhs, .used, .r_value);2778 try transExpr(rp, scope, rhs, .used, .r_value);
27792779
2780 if (is_shift) {2780 if (is_shift) {
2781 const as_node = try transCreateNodeBuiltinFnCall(rp.c, "@as");2781 const cast_node = try transCreateNodeBuiltinFnCall(rp.c, "@intCast");
2782 const rhs_type = try qualTypeToLog2IntRef(rp, getExprQualType(rp.c, rhs), loc);2782 const rhs_type = try qualTypeToLog2IntRef(rp, getExprQualType(rp.c, rhs), loc);
2783 try as_node.params.push(rhs_type);2783 try cast_node.params.push(rhs_type);
2784 _ = try appendToken(rp.c, .Comma, ",");2784 _ = try appendToken(rp.c, .Comma, ",");
2785 try as_node.params.push(rhs_node);2785 try cast_node.params.push(rhs_node);
2786 as_node.rparen_token = try appendToken(rp.c, .RParen, ")");2786 cast_node.rparen_token = try appendToken(rp.c, .RParen, ")");
2787 rhs_node = &as_node.base;2787 rhs_node = &cast_node.base;
2788 }2788 }
2789 if (scope.id != .Condition)2789 if (scope.id != .Condition)
2790 _ = try appendToken(rp.c, .Semicolon, ";");2790 _ = try appendToken(rp.c, .Semicolon, ";");
...@@ -2815,13 +2815,13 @@ fn transCreateCompoundAssign(...@@ -2815,13 +2815,13 @@ fn transCreateCompoundAssign(
2815 const bin_token = try appendToken(rp.c, bin_tok_id, bin_bytes);2815 const bin_token = try appendToken(rp.c, bin_tok_id, bin_bytes);
2816 var rhs_node = try transExpr(rp, scope, rhs, .used, .r_value);2816 var rhs_node = try transExpr(rp, scope, rhs, .used, .r_value);
2817 if (is_shift) {2817 if (is_shift) {
2818 const as_node = try transCreateNodeBuiltinFnCall(rp.c, "@as");2818 const cast_node = try transCreateNodeBuiltinFnCall(rp.c, "@intCast");
2819 const rhs_type = try qualTypeToLog2IntRef(rp, getExprQualType(rp.c, rhs), loc);2819 const rhs_type = try qualTypeToLog2IntRef(rp, getExprQualType(rp.c, rhs), loc);
2820 try as_node.params.push(rhs_type);2820 try cast_node.params.push(rhs_type);
2821 _ = try appendToken(rp.c, .Comma, ",");2821 _ = try appendToken(rp.c, .Comma, ",");
2822 try as_node.params.push(rhs_node);2822 try cast_node.params.push(rhs_node);
2823 as_node.rparen_token = try appendToken(rp.c, .RParen, ")");2823 cast_node.rparen_token = try appendToken(rp.c, .RParen, ")");
2824 rhs_node = &as_node.base;2824 rhs_node = &cast_node.base;
2825 }2825 }
2826 const rhs_bin = try transCreateNodeInfixOp(rp, scope, ref_node, bin_op, bin_token, rhs_node, .used, false);2826 const rhs_bin = try transCreateNodeInfixOp(rp, scope, ref_node, bin_op, bin_token, rhs_node, .used, false);
28272827
...@@ -3883,20 +3883,20 @@ fn transCreateNodeShiftOp(...@@ -3883,20 +3883,20 @@ fn transCreateNodeShiftOp(
3883 const lhs = try transExpr(rp, scope, lhs_expr, .used, .l_value);3883 const lhs = try transExpr(rp, scope, lhs_expr, .used, .l_value);
3884 const op_token = try appendToken(rp.c, op_tok_id, bytes);3884 const op_token = try appendToken(rp.c, op_tok_id, bytes);
38853885
3886 const as_node = try transCreateNodeBuiltinFnCall(rp.c, "@as");3886 const cast_node = try transCreateNodeBuiltinFnCall(rp.c, "@intCast");
3887 const rhs_type = try qualTypeToLog2IntRef(rp, ZigClangBinaryOperator_getType(stmt), rhs_location);3887 const rhs_type = try qualTypeToLog2IntRef(rp, ZigClangBinaryOperator_getType(stmt), rhs_location);
3888 try as_node.params.push(rhs_type);3888 try cast_node.params.push(rhs_type);
3889 _ = try appendToken(rp.c, .Comma, ",");3889 _ = try appendToken(rp.c, .Comma, ",");
3890 const rhs = try transExprCoercing(rp, scope, rhs_expr, .used, .r_value);3890 const rhs = try transExprCoercing(rp, scope, rhs_expr, .used, .r_value);
3891 try as_node.params.push(rhs);3891 try cast_node.params.push(rhs);
3892 as_node.rparen_token = try appendToken(rp.c, .RParen, ")");3892 cast_node.rparen_token = try appendToken(rp.c, .RParen, ")");
38933893
3894 const node = try rp.c.a().create(ast.Node.InfixOp);3894 const node = try rp.c.a().create(ast.Node.InfixOp);
3895 node.* = ast.Node.InfixOp{3895 node.* = ast.Node.InfixOp{
3896 .op_token = op_token,3896 .op_token = op_token,
3897 .lhs = lhs,3897 .lhs = lhs,
3898 .op = op,3898 .op = op,
3899 .rhs = &as_node.base,3899 .rhs = &cast_node.base,
3900 };3900 };
39013901
3902 return &node.base;3902 return &node.base;