| ... | ... | @@ -1915,17 +1915,29 @@ static AstNode *trans_implicit_cast_expr(Context *c, ResultUsed result_used, Tra |
| 1915 | 1915 | emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_IntegralToBoolean"); |
| 1916 | 1916 | return nullptr; |
| 1917 | 1917 | case ZigClangCK_IntegralToFloating: |
| 1918 | | emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_IntegralToFloating"); |
| 1919 | | return nullptr; |
| 1918 | case ZigClangCK_FloatingToIntegral: |
| 1919 | { |
| 1920 | AstNode *target_node = trans_expr(c, ResultUsedYes, scope, bitcast(stmt->getSubExpr()), TransRValue); |
| 1921 | if (target_node == nullptr) |
| 1922 | return nullptr; |
| 1923 | |
| 1924 | AstNode *dest_type_node = get_expr_type(c, (const ZigClangExpr *)stmt); |
| 1925 | if (dest_type_node == nullptr) |
| 1926 | return nullptr; |
| 1927 | |
| 1928 | const bool int_to_float = (ZigClangCK)stmt->getCastKind() == ZigClangCK_IntegralToFloating; |
| 1929 | const char *fn = int_to_float ? "intToFloat" : "floatToInt"; |
| 1930 | AstNode *node = trans_create_node_builtin_fn_call_str(c, fn); |
| 1931 | node->data.fn_call_expr.params.append(dest_type_node); |
| 1932 | node->data.fn_call_expr.params.append(target_node); |
| 1933 | return maybe_suppress_result(c, result_used, node); |
| 1934 | } |
| 1920 | 1935 | case ZigClangCK_FixedPointCast: |
| 1921 | 1936 | emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_FixedPointCast"); |
| 1922 | 1937 | return nullptr; |
| 1923 | 1938 | case ZigClangCK_FixedPointToBoolean: |
| 1924 | 1939 | emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_FixedPointToBoolean"); |
| 1925 | 1940 | return nullptr; |
| 1926 | | case ZigClangCK_FloatingToIntegral: |
| 1927 | | emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_FloatingToIntegral"); |
| 1928 | | return nullptr; |
| 1929 | 1941 | case ZigClangCK_FloatingToBoolean: |
| 1930 | 1942 | emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_FloatingToBoolean"); |
| 1931 | 1943 | return nullptr; |