| ... | ... | @@ -1857,6 +1857,16 @@ static AstNode *trans_c_style_cast_expr(Context *c, bool result_used, AstNode *b |
| 1857 | 1857 | return trans_c_cast(c, stmt->getLocStart(), stmt->getType(), sub_expr_node); |
| 1858 | 1858 | } |
| 1859 | 1859 | |
| 1860 | static AstNode *trans_unary_expr_or_type_trait_expr(Context *c, AstNode *block, UnaryExprOrTypeTraitExpr *stmt) { |
| 1861 | AstNode *type_node = trans_qual_type(c, stmt->getTypeOfArgument(), stmt->getLocStart()); |
| 1862 | if (type_node == nullptr) |
| 1863 | return nullptr; |
| 1864 | |
| 1865 | AstNode *node = trans_create_node_builtin_fn_call_str(c, "sizeOf"); |
| 1866 | node->data.fn_call_expr.params.append(type_node); |
| 1867 | return node; |
| 1868 | } |
| 1869 | |
| 1860 | 1870 | static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *stmt, TransLRValue lrvalue) { |
| 1861 | 1871 | Stmt::StmtClass sc = stmt->getStmtClass(); |
| 1862 | 1872 | switch (sc) { |
| ... | ... | @@ -1894,6 +1904,8 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s |
| 1894 | 1904 | return trans_array_subscript_expr(c, block, (ArraySubscriptExpr *)stmt); |
| 1895 | 1905 | case Stmt::CStyleCastExprClass: |
| 1896 | 1906 | return trans_c_style_cast_expr(c, result_used, block, (CStyleCastExpr *)stmt, lrvalue); |
| 1907 | case Stmt::UnaryExprOrTypeTraitExprClass: |
| 1908 | return trans_unary_expr_or_type_trait_expr(c, block, (UnaryExprOrTypeTraitExpr *)stmt); |
| 1897 | 1909 | case Stmt::CaseStmtClass: |
| 1898 | 1910 | emit_warning(c, stmt->getLocStart(), "TODO handle C CaseStmtClass"); |
| 1899 | 1911 | return nullptr; |
| ... | ... | @@ -2233,9 +2245,6 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s |
| 2233 | 2245 | case Stmt::TypoExprClass: |
| 2234 | 2246 | emit_warning(c, stmt->getLocStart(), "TODO handle C TypoExprClass"); |
| 2235 | 2247 | return nullptr; |
| 2236 | | case Stmt::UnaryExprOrTypeTraitExprClass: |
| 2237 | | emit_warning(c, stmt->getLocStart(), "TODO handle C UnaryExprOrTypeTraitExprClass"); |
| 2238 | | return nullptr; |
| 2239 | 2248 | case Stmt::VAArgExprClass: |
| 2240 | 2249 | emit_warning(c, stmt->getLocStart(), "TODO handle C VAArgExprClass"); |
| 2241 | 2250 | return nullptr; |