| ... | @@ -1837,6 +1837,16 @@ static AstNode *trans_array_subscript_expr(Context *c, AstNode *block, ArraySubs | ... | @@ -1837,6 +1837,16 @@ static AstNode *trans_array_subscript_expr(Context *c, AstNode *block, ArraySubs |
| 1837 | return node; | 1837 | return node; |
| 1838 | } | 1838 | } |
| 1839 | | 1839 | |
| | 1840 | static AstNode *trans_c_style_cast_expr(Context *c, bool result_used, AstNode *block, |
| | 1841 | CStyleCastExpr *stmt, TransLRValue lrvalue) |
| | 1842 | { |
| | 1843 | AstNode *sub_expr_node = trans_expr(c, result_used, block, stmt->getSubExpr(), lrvalue); |
| | 1844 | if (sub_expr_node == nullptr) |
| | 1845 | return nullptr; |
| | 1846 | |
| | 1847 | return trans_c_cast(c, stmt->getLocStart(), stmt->getType(), sub_expr_node); |
| | 1848 | } |
| | 1849 | |
| 1840 | static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *stmt, TransLRValue lrvalue) { | 1850 | static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *stmt, TransLRValue lrvalue) { |
| 1841 | Stmt::StmtClass sc = stmt->getStmtClass(); | 1851 | Stmt::StmtClass sc = stmt->getStmtClass(); |
| 1842 | switch (sc) { | 1852 | switch (sc) { |
| ... | @@ -1872,6 +1882,8 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s | ... | @@ -1872,6 +1882,8 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s |
| 1872 | return trans_member_expr(c, block, (MemberExpr *)stmt); | 1882 | return trans_member_expr(c, block, (MemberExpr *)stmt); |
| 1873 | case Stmt::ArraySubscriptExprClass: | 1883 | case Stmt::ArraySubscriptExprClass: |
| 1874 | return trans_array_subscript_expr(c, block, (ArraySubscriptExpr *)stmt); | 1884 | return trans_array_subscript_expr(c, block, (ArraySubscriptExpr *)stmt); |
| | 1885 | case Stmt::CStyleCastExprClass: |
| | 1886 | return trans_c_style_cast_expr(c, result_used, block, (CStyleCastExpr *)stmt, lrvalue); |
| 1875 | case Stmt::CaseStmtClass: | 1887 | case Stmt::CaseStmtClass: |
| 1876 | emit_warning(c, stmt->getLocStart(), "TODO handle C CaseStmtClass"); | 1888 | emit_warning(c, stmt->getLocStart(), "TODO handle C CaseStmtClass"); |
| 1877 | return nullptr; | 1889 | return nullptr; |
| ... | @@ -2020,9 +2032,6 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s | ... | @@ -2020,9 +2032,6 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s |
| 2020 | case Stmt::UserDefinedLiteralClass: | 2032 | case Stmt::UserDefinedLiteralClass: |
| 2021 | emit_warning(c, stmt->getLocStart(), "TODO handle C UserDefinedLiteralClass"); | 2033 | emit_warning(c, stmt->getLocStart(), "TODO handle C UserDefinedLiteralClass"); |
| 2022 | return nullptr; | 2034 | return nullptr; |
| 2023 | case Stmt::CStyleCastExprClass: | | |
| 2024 | emit_warning(c, stmt->getLocStart(), "TODO handle C CStyleCastExprClass"); | | |
| 2025 | return nullptr; | | |
| 2026 | case Stmt::CXXFunctionalCastExprClass: | 2035 | case Stmt::CXXFunctionalCastExprClass: |
| 2027 | emit_warning(c, stmt->getLocStart(), "TODO handle C CXXFunctionalCastExprClass"); | 2036 | emit_warning(c, stmt->getLocStart(), "TODO handle C CXXFunctionalCastExprClass"); |
| 2028 | return nullptr; | 2037 | return nullptr; |