| ... | ... | @@ -1228,12 +1228,22 @@ static AstNode *trans_implicit_cast_expr(Context *c, AstNode *block, ImplicitCas |
| 1228 | 1228 | return nullptr; |
| 1229 | 1229 | return target_node; |
| 1230 | 1230 | } |
| 1231 | case CK_BitCast: |
| 1232 | { |
| 1233 | AstNode *target_node = trans_expr(c, true, block, stmt->getSubExpr(), TransRValue); |
| 1234 | if (target_node == nullptr) |
| 1235 | return nullptr; |
| 1236 | |
| 1237 | AstNode *dest_type_node = trans_qual_type(c, stmt->getType(), stmt->getLocStart()); |
| 1238 | |
| 1239 | AstNode *node = trans_create_node_builtin_fn_call_str(c, "ptrCast"); |
| 1240 | node->data.fn_call_expr.params.append(dest_type_node); |
| 1241 | node->data.fn_call_expr.params.append(target_node); |
| 1242 | return node; |
| 1243 | } |
| 1231 | 1244 | case CK_Dependent: |
| 1232 | 1245 | emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_Dependent"); |
| 1233 | 1246 | return nullptr; |
| 1234 | | case CK_BitCast: |
| 1235 | | emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_BitCast"); |
| 1236 | | return nullptr; |
| 1237 | 1247 | case CK_LValueBitCast: |
| 1238 | 1248 | emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_LValueBitCast"); |
| 1239 | 1249 | return nullptr; |