authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-04-12 14:38:15-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-04-12 14:39:12-04:00
log9d229791c68827f8890f0715dc05e3380693645d
tree97d383f647ac9e5715059eebb8e193619833f689
parent63f2e96eeaaa032ffa9ff11a4a632d8032883233
signature Commit is signed but in an unrecognized format.

translate-c: move some code to the C API

See #1964

3 files changed, 217 insertions(+), 192 deletions(-)

src/translate_c.cpp+198-192
......@@ -116,16 +116,20 @@ static AstNode *resolve_record_decl(Context *c, const ZigClangRecordDecl *record
116116static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl);
117117static AstNode *resolve_typedef_decl(Context *c, const ZigClangTypedefNameDecl *typedef_decl);
118118
119static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *stmt,
119static int trans_stmt_extra(Context *c, TransScope *scope, const ZigClangStmt *stmt,
120120 ResultUsed result_used, TransLRValue lrval,
121121 AstNode **out_node, TransScope **out_child_scope,
122122 TransScope **out_node_scope);
123static TransScope *trans_stmt(Context *c, TransScope *scope, const clang::Stmt *stmt, AstNode **out_node);
123static TransScope *trans_stmt(Context *c, TransScope *scope, const ZigClangStmt *stmt, AstNode **out_node);
124124static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope, const clang::Expr *expr, TransLRValue lrval);
125125static AstNode *trans_qual_type(Context *c, ZigClangQualType qt, ZigClangSourceLocation source_loc);
126126static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *scope, const clang::Expr *expr, TransLRValue lrval);
127127static AstNode *trans_ap_value(Context *c, clang::APValue *ap_value, ZigClangQualType qt, ZigClangSourceLocation source_loc);
128128
129static const ZigClangStmt *bitcast(const clang::Stmt *src) {
130 return reinterpret_cast<const ZigClangStmt *>(src);
131}
132
129133static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
130134 ZigClangSourceLocation dest;
131135 memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangSourceLocation));
......@@ -1217,9 +1221,11 @@ static int trans_compound_stmt_inline(Context *c, TransScope *scope, const clang
12171221 AstNode *block_node, TransScope **out_node_scope)
12181222{
12191223 assert(block_node->type == NodeTypeBlock);
1220 for (clang::CompoundStmt::const_body_iterator it = stmt->body_begin(), end_it = stmt->body_end(); it != end_it; ++it) {
1224 for (clang::CompoundStmt::const_body_iterator it = stmt->body_begin(), end_it = stmt->body_end();
1225 it != end_it; ++it)
1226 {
12211227 AstNode *child_node;
1222 scope = trans_stmt(c, scope, *it, &child_node);
1228 scope = trans_stmt(c, scope, bitcast(*it), &child_node);
12231229 if (scope == nullptr)
12241230 return ErrorUnexpected;
12251231 if (child_node != nullptr)
......@@ -2750,7 +2756,7 @@ static AstNode *trans_while_loop(Context *c, TransScope *scope, const clang::Whi
27502756 if (while_scope->node->data.while_expr.condition == nullptr)
27512757 return nullptr;
27522758
2753 TransScope *body_scope = trans_stmt(c, &while_scope->base, stmt->getBody(),
2759 TransScope *body_scope = trans_stmt(c, &while_scope->base, bitcast(stmt->getBody()),
27542760 &while_scope->node->data.while_expr.body);
27552761 if (body_scope == nullptr)
27562762 return nullptr;
......@@ -2763,12 +2769,12 @@ static AstNode *trans_if_statement(Context *c, TransScope *scope, const clang::I
27632769 // if (c) t else e
27642770 AstNode *if_node = trans_create_node(c, NodeTypeIfBoolExpr);
27652771
2766 TransScope *then_scope = trans_stmt(c, scope, stmt->getThen(), &if_node->data.if_bool_expr.then_block);
2772 TransScope *then_scope = trans_stmt(c, scope, bitcast(stmt->getThen()), &if_node->data.if_bool_expr.then_block);
27672773 if (then_scope == nullptr)
27682774 return nullptr;
27692775
27702776 if (stmt->getElse() != nullptr) {
2771 TransScope *else_scope = trans_stmt(c, scope, stmt->getElse(), &if_node->data.if_bool_expr.else_node);
2777 TransScope *else_scope = trans_stmt(c, scope, bitcast(stmt->getElse()), &if_node->data.if_bool_expr.else_node);
27722778 if (else_scope == nullptr)
27732779 return nullptr;
27742780 }
......@@ -2911,7 +2917,7 @@ static AstNode *trans_do_loop(Context *c, TransScope *parent_scope, const clang:
29112917 // zig: }
29122918
29132919 // We call the low level function so that we can set child_scope to the scope of the generated block.
2914 if (trans_stmt_extra(c, &while_scope->base, stmt->getBody(), ResultUsedNo, TransRValue, &body_node,
2920 if (trans_stmt_extra(c, &while_scope->base, bitcast(stmt->getBody()), ResultUsedNo, TransRValue, &body_node,
29152921 nullptr, &child_scope))
29162922 {
29172923 return nullptr;
......@@ -2929,7 +2935,7 @@ static AstNode *trans_do_loop(Context *c, TransScope *parent_scope, const clang:
29292935 TransScopeBlock *child_block_scope = trans_scope_block_create(c, &while_scope->base);
29302936 body_node = child_block_scope->node;
29312937 AstNode *child_statement;
2932 child_scope = trans_stmt(c, &child_block_scope->base, stmt->getBody(), &child_statement);
2938 child_scope = trans_stmt(c, &child_block_scope->base, bitcast(stmt->getBody()), &child_statement);
29332939 if (child_scope == nullptr) return nullptr;
29342940 if (child_statement != nullptr) {
29352941 body_node->data.block.statements.append(child_statement);
......@@ -2955,7 +2961,7 @@ static AstNode *trans_for_loop(Context *c, TransScope *parent_scope, const clang
29552961 AstNode *loop_block_node;
29562962 TransScopeWhile *while_scope;
29572963 TransScope *cond_scope;
2958 const clang::Stmt *init_stmt = stmt->getInit();
2964 const ZigClangStmt *init_stmt = bitcast(stmt->getInit());
29592965 if (init_stmt == nullptr) {
29602966 while_scope = trans_scope_while_create(c, parent_scope);
29612967 loop_block_node = while_scope->node;
......@@ -2976,12 +2982,12 @@ static AstNode *trans_for_loop(Context *c, TransScope *parent_scope, const clang
29762982 child_scope->node->data.block.statements.append(while_scope->node);
29772983 }
29782984
2979 const clang::Stmt *cond_stmt = stmt->getCond();
2985 const ZigClangStmt *cond_stmt = bitcast(stmt->getCond());
29802986 if (cond_stmt == nullptr) {
29812987 while_scope->node->data.while_expr.condition = trans_create_node_bool(c, true);
29822988 } else {
2983 if (clang::Expr::classof(cond_stmt)) {
2984 const clang::Expr *cond_expr = static_cast<const clang::Expr*>(cond_stmt);
2989 if (ZigClangStmt_classof_Expr(cond_stmt)) {
2990 const clang::Expr *cond_expr = reinterpret_cast<const clang::Expr*>(cond_stmt);
29852991 while_scope->node->data.while_expr.condition = trans_bool_expr(c, ResultUsedYes, cond_scope, cond_expr, TransRValue);
29862992
29872993 if (while_scope->node->data.while_expr.condition == nullptr)
......@@ -2994,7 +3000,7 @@ static AstNode *trans_for_loop(Context *c, TransScope *parent_scope, const clang
29943000 }
29953001 }
29963002
2997 const clang::Stmt *inc_stmt = stmt->getInc();
3003 const ZigClangStmt *inc_stmt = bitcast(stmt->getInc());
29983004 if (inc_stmt != nullptr) {
29993005 AstNode *inc_node;
30003006 TransScope *inc_scope = trans_stmt(c, cond_scope, inc_stmt, &inc_node);
......@@ -3004,7 +3010,7 @@ static AstNode *trans_for_loop(Context *c, TransScope *parent_scope, const clang
30043010 }
30053011
30063012 AstNode *body_statement;
3007 TransScope *body_scope = trans_stmt(c, &while_scope->base, stmt->getBody(), &body_statement);
3013 TransScope *body_scope = trans_stmt(c, &while_scope->base, bitcast(stmt->getBody()), &body_statement);
30083014 if (body_scope == nullptr)
30093015 return nullptr;
30103016
......@@ -3027,7 +3033,7 @@ static AstNode *trans_switch_stmt(Context *c, TransScope *parent_scope, const cl
30273033 switch_scope = trans_scope_switch_create(c, &block_scope->base);
30283034 } else {
30293035 AstNode *vars_node;
3030 TransScope *var_scope = trans_stmt(c, &block_scope->base, var_decl_stmt, &vars_node);
3036 TransScope *var_scope = trans_stmt(c, &block_scope->base, (const ZigClangStmt *)var_decl_stmt, &vars_node);
30313037 if (var_scope == nullptr)
30323038 return nullptr;
30333039 if (vars_node != nullptr)
......@@ -3050,8 +3056,8 @@ static AstNode *trans_switch_stmt(Context *c, TransScope *parent_scope, const cl
30503056 switch_scope->switch_node->data.switch_expr.expr = expr_node;
30513057
30523058 AstNode *body_node;
3053 const clang::Stmt *body_stmt = stmt->getBody();
3054 if ((ZigClangStmtClass)body_stmt->getStmtClass() == ZigClangStmt_CompoundStmtClass) {
3059 const ZigClangStmt *body_stmt = bitcast(stmt->getBody());
3060 if (ZigClangStmt_getStmtClass(body_stmt) == ZigClangStmt_CompoundStmtClass) {
30553061 if (trans_compound_stmt_inline(c, &switch_scope->base, (const clang::CompoundStmt *)body_stmt,
30563062 block_scope->node, nullptr))
30573063 {
......@@ -3119,7 +3125,7 @@ static int trans_switch_case(Context *c, TransScope *parent_scope, const clang::
31193125 scope_block->node->data.block.statements.append(case_block);
31203126
31213127 AstNode *sub_stmt_node;
3122 TransScope *new_scope = trans_stmt(c, parent_scope, stmt->getSubStmt(), &sub_stmt_node);
3128 TransScope *new_scope = trans_stmt(c, parent_scope, bitcast(stmt->getSubStmt()), &sub_stmt_node);
31233129 if (new_scope == nullptr)
31243130 return ErrorUnexpected;
31253131 if (sub_stmt_node != nullptr)
......@@ -3156,7 +3162,7 @@ static int trans_switch_default(Context *c, TransScope *parent_scope, const clan
31563162 scope_block->node->data.block.statements.append(case_block);
31573163
31583164 AstNode *sub_stmt_node;
3159 TransScope *new_scope = trans_stmt(c, parent_scope, stmt->getSubStmt(), &sub_stmt_node);
3165 TransScope *new_scope = trans_stmt(c, parent_scope, bitcast(stmt->getSubStmt()), &sub_stmt_node);
31603166 if (new_scope == nullptr)
31613167 return ErrorUnexpected;
31623168 if (sub_stmt_node != nullptr)
......@@ -3219,12 +3225,12 @@ static int wrap_stmt(AstNode **out_node, TransScope **out_scope, TransScope *in_
32193225 return ErrorNone;
32203226}
32213227
3222static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *stmt,
3228static int trans_stmt_extra(Context *c, TransScope *scope, const ZigClangStmt *stmt,
32233229 ResultUsed result_used, TransLRValue lrvalue,
32243230 AstNode **out_node, TransScope **out_child_scope,
32253231 TransScope **out_node_scope)
32263232{
3227 ZigClangStmtClass sc = (ZigClangStmtClass)stmt->getStmtClass();
3233 ZigClangStmtClass sc = ZigClangStmt_getStmtClass(stmt);
32283234 switch (sc) {
32293235 case ZigClangStmt_ReturnStmtClass:
32303236 return wrap_stmt(out_node, out_child_scope, scope,
......@@ -3325,505 +3331,505 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *st
33253331 return wrap_stmt(out_node, out_child_scope, scope,
33263332 trans_stmt_expr(c, result_used, scope, (const clang::StmtExpr *)stmt, out_node_scope));
33273333 case ZigClangStmt_NoStmtClass:
3328 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C NoStmtClass");
3334 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C NoStmtClass");
33293335 return ErrorUnexpected;
33303336 case ZigClangStmt_GCCAsmStmtClass:
3331 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GCCAsmStmtClass");
3337 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GCCAsmStmtClass");
33323338 return ErrorUnexpected;
33333339 case ZigClangStmt_MSAsmStmtClass:
3334 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSAsmStmtClass");
3340 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSAsmStmtClass");
33353341 return ErrorUnexpected;
33363342 case ZigClangStmt_AttributedStmtClass:
3337 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AttributedStmtClass");
3343 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AttributedStmtClass");
33383344 return ErrorUnexpected;
33393345 case ZigClangStmt_CXXCatchStmtClass:
3340 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXCatchStmtClass");
3346 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXCatchStmtClass");
33413347 return ErrorUnexpected;
33423348 case ZigClangStmt_CXXForRangeStmtClass:
3343 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXForRangeStmtClass");
3349 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXForRangeStmtClass");
33443350 return ErrorUnexpected;
33453351 case ZigClangStmt_CXXTryStmtClass:
3346 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXTryStmtClass");
3352 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXTryStmtClass");
33473353 return ErrorUnexpected;
33483354 case ZigClangStmt_CapturedStmtClass:
3349 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CapturedStmtClass");
3355 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CapturedStmtClass");
33503356 return ErrorUnexpected;
33513357 case ZigClangStmt_CoreturnStmtClass:
3352 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoreturnStmtClass");
3358 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoreturnStmtClass");
33533359 return ErrorUnexpected;
33543360 case ZigClangStmt_CoroutineBodyStmtClass:
3355 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoroutineBodyStmtClass");
3361 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoroutineBodyStmtClass");
33563362 return ErrorUnexpected;
33573363 case ZigClangStmt_BinaryConditionalOperatorClass:
3358 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C BinaryConditionalOperatorClass");
3364 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C BinaryConditionalOperatorClass");
33593365 return ErrorUnexpected;
33603366 case ZigClangStmt_AddrLabelExprClass:
3361 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AddrLabelExprClass");
3367 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AddrLabelExprClass");
33623368 return ErrorUnexpected;
33633369 case ZigClangStmt_ArrayInitIndexExprClass:
3364 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ArrayInitIndexExprClass");
3370 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ArrayInitIndexExprClass");
33653371 return ErrorUnexpected;
33663372 case ZigClangStmt_ArrayInitLoopExprClass:
3367 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ArrayInitLoopExprClass");
3373 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ArrayInitLoopExprClass");
33683374 return ErrorUnexpected;
33693375 case ZigClangStmt_ArrayTypeTraitExprClass:
3370 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ArrayTypeTraitExprClass");
3376 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ArrayTypeTraitExprClass");
33713377 return ErrorUnexpected;
33723378 case ZigClangStmt_AsTypeExprClass:
3373 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AsTypeExprClass");
3379 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AsTypeExprClass");
33743380 return ErrorUnexpected;
33753381 case ZigClangStmt_AtomicExprClass:
3376 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AtomicExprClass");
3382 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AtomicExprClass");
33773383 return ErrorUnexpected;
33783384 case ZigClangStmt_BlockExprClass:
3379 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C BlockExprClass");
3385 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C BlockExprClass");
33803386 return ErrorUnexpected;
33813387 case ZigClangStmt_CXXBindTemporaryExprClass:
3382 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXBindTemporaryExprClass");
3388 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXBindTemporaryExprClass");
33833389 return ErrorUnexpected;
33843390 case ZigClangStmt_CXXBoolLiteralExprClass:
3385 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXBoolLiteralExprClass");
3391 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXBoolLiteralExprClass");
33863392 return ErrorUnexpected;
33873393 case ZigClangStmt_CXXConstructExprClass:
3388 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXConstructExprClass");
3394 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXConstructExprClass");
33893395 return ErrorUnexpected;
33903396 case ZigClangStmt_CXXTemporaryObjectExprClass:
3391 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXTemporaryObjectExprClass");
3397 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXTemporaryObjectExprClass");
33923398 return ErrorUnexpected;
33933399 case ZigClangStmt_CXXDefaultArgExprClass:
3394 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDefaultArgExprClass");
3400 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDefaultArgExprClass");
33953401 return ErrorUnexpected;
33963402 case ZigClangStmt_CXXDefaultInitExprClass:
3397 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDefaultInitExprClass");
3403 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDefaultInitExprClass");
33983404 return ErrorUnexpected;
33993405 case ZigClangStmt_CXXDeleteExprClass:
3400 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDeleteExprClass");
3406 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDeleteExprClass");
34013407 return ErrorUnexpected;
34023408 case ZigClangStmt_CXXDependentScopeMemberExprClass:
3403 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDependentScopeMemberExprClass");
3409 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDependentScopeMemberExprClass");
34043410 return ErrorUnexpected;
34053411 case ZigClangStmt_CXXFoldExprClass:
3406 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXFoldExprClass");
3412 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXFoldExprClass");
34073413 return ErrorUnexpected;
34083414 case ZigClangStmt_CXXInheritedCtorInitExprClass:
3409 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXInheritedCtorInitExprClass");
3415 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXInheritedCtorInitExprClass");
34103416 return ErrorUnexpected;
34113417 case ZigClangStmt_CXXNewExprClass:
3412 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXNewExprClass");
3418 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXNewExprClass");
34133419 return ErrorUnexpected;
34143420 case ZigClangStmt_CXXNoexceptExprClass:
3415 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXNoexceptExprClass");
3421 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXNoexceptExprClass");
34163422 return ErrorUnexpected;
34173423 case ZigClangStmt_CXXNullPtrLiteralExprClass:
3418 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXNullPtrLiteralExprClass");
3424 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXNullPtrLiteralExprClass");
34193425 return ErrorUnexpected;
34203426 case ZigClangStmt_CXXPseudoDestructorExprClass:
3421 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXPseudoDestructorExprClass");
3427 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXPseudoDestructorExprClass");
34223428 return ErrorUnexpected;
34233429 case ZigClangStmt_CXXScalarValueInitExprClass:
3424 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXScalarValueInitExprClass");
3430 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXScalarValueInitExprClass");
34253431 return ErrorUnexpected;
34263432 case ZigClangStmt_CXXStdInitializerListExprClass:
3427 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXStdInitializerListExprClass");
3433 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXStdInitializerListExprClass");
34283434 return ErrorUnexpected;
34293435 case ZigClangStmt_CXXThisExprClass:
3430 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXThisExprClass");
3436 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXThisExprClass");
34313437 return ErrorUnexpected;
34323438 case ZigClangStmt_CXXThrowExprClass:
3433 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXThrowExprClass");
3439 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXThrowExprClass");
34343440 return ErrorUnexpected;
34353441 case ZigClangStmt_CXXTypeidExprClass:
3436 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXTypeidExprClass");
3442 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXTypeidExprClass");
34373443 return ErrorUnexpected;
34383444 case ZigClangStmt_CXXUnresolvedConstructExprClass:
3439 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXUnresolvedConstructExprClass");
3445 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXUnresolvedConstructExprClass");
34403446 return ErrorUnexpected;
34413447 case ZigClangStmt_CXXUuidofExprClass:
3442 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXUuidofExprClass");
3448 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXUuidofExprClass");
34433449 return ErrorUnexpected;
34443450 case ZigClangStmt_CUDAKernelCallExprClass:
3445 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CUDAKernelCallExprClass");
3451 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CUDAKernelCallExprClass");
34463452 return ErrorUnexpected;
34473453 case ZigClangStmt_CXXMemberCallExprClass:
3448 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXMemberCallExprClass");
3454 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXMemberCallExprClass");
34493455 return ErrorUnexpected;
34503456 case ZigClangStmt_CXXOperatorCallExprClass:
3451 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXOperatorCallExprClass");
3457 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXOperatorCallExprClass");
34523458 return ErrorUnexpected;
34533459 case ZigClangStmt_UserDefinedLiteralClass:
3454 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C UserDefinedLiteralClass");
3460 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C UserDefinedLiteralClass");
34553461 return ErrorUnexpected;
34563462 case ZigClangStmt_CXXFunctionalCastExprClass:
3457 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXFunctionalCastExprClass");
3463 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXFunctionalCastExprClass");
34583464 return ErrorUnexpected;
34593465 case ZigClangStmt_CXXConstCastExprClass:
3460 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXConstCastExprClass");
3466 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXConstCastExprClass");
34613467 return ErrorUnexpected;
34623468 case ZigClangStmt_CXXDynamicCastExprClass:
3463 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDynamicCastExprClass");
3469 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDynamicCastExprClass");
34643470 return ErrorUnexpected;
34653471 case ZigClangStmt_CXXReinterpretCastExprClass:
3466 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXReinterpretCastExprClass");
3472 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXReinterpretCastExprClass");
34673473 return ErrorUnexpected;
34683474 case ZigClangStmt_CXXStaticCastExprClass:
3469 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXStaticCastExprClass");
3475 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXStaticCastExprClass");
34703476 return ErrorUnexpected;
34713477 case ZigClangStmt_ObjCBridgedCastExprClass:
3472 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCBridgedCastExprClass");
3478 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCBridgedCastExprClass");
34733479 return ErrorUnexpected;
34743480 case ZigClangStmt_CharacterLiteralClass:
3475 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CharacterLiteralClass");
3481 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CharacterLiteralClass");
34763482 return ErrorUnexpected;
34773483 case ZigClangStmt_ChooseExprClass:
3478 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ChooseExprClass");
3484 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ChooseExprClass");
34793485 return ErrorUnexpected;
34803486 case ZigClangStmt_CompoundLiteralExprClass:
3481 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CompoundLiteralExprClass");
3487 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CompoundLiteralExprClass");
34823488 return ErrorUnexpected;
34833489 case ZigClangStmt_ConvertVectorExprClass:
3484 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ConvertVectorExprClass");
3490 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ConvertVectorExprClass");
34853491 return ErrorUnexpected;
34863492 case ZigClangStmt_CoawaitExprClass:
3487 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoawaitExprClass");
3493 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoawaitExprClass");
34883494 return ErrorUnexpected;
34893495 case ZigClangStmt_CoyieldExprClass:
3490 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoyieldExprClass");
3496 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoyieldExprClass");
34913497 return ErrorUnexpected;
34923498 case ZigClangStmt_DependentCoawaitExprClass:
3493 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DependentCoawaitExprClass");
3499 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DependentCoawaitExprClass");
34943500 return ErrorUnexpected;
34953501 case ZigClangStmt_DependentScopeDeclRefExprClass:
3496 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DependentScopeDeclRefExprClass");
3502 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DependentScopeDeclRefExprClass");
34973503 return ErrorUnexpected;
34983504 case ZigClangStmt_DesignatedInitExprClass:
3499 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DesignatedInitExprClass");
3505 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DesignatedInitExprClass");
35003506 return ErrorUnexpected;
35013507 case ZigClangStmt_DesignatedInitUpdateExprClass:
3502 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DesignatedInitUpdateExprClass");
3508 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DesignatedInitUpdateExprClass");
35033509 return ErrorUnexpected;
35043510 case ZigClangStmt_ExpressionTraitExprClass:
3505 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ExpressionTraitExprClass");
3511 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ExpressionTraitExprClass");
35063512 return ErrorUnexpected;
35073513 case ZigClangStmt_ExtVectorElementExprClass:
3508 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ExtVectorElementExprClass");
3514 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ExtVectorElementExprClass");
35093515 return ErrorUnexpected;
35103516 case ZigClangStmt_FixedPointLiteralClass:
3511 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C FixedPointLiteralClass");
3517 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C FixedPointLiteralClass");
35123518 return ErrorUnexpected;
35133519 case ZigClangStmt_FloatingLiteralClass:
3514 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C FloatingLiteralClass");
3520 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C FloatingLiteralClass");
35153521 return ErrorUnexpected;
35163522 case ZigClangStmt_ExprWithCleanupsClass:
3517 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ExprWithCleanupsClass");
3523 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ExprWithCleanupsClass");
35183524 return ErrorUnexpected;
35193525 case ZigClangStmt_FunctionParmPackExprClass:
3520 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C FunctionParmPackExprClass");
3526 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C FunctionParmPackExprClass");
35213527 return ErrorUnexpected;
35223528 case ZigClangStmt_GNUNullExprClass:
3523 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GNUNullExprClass");
3529 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GNUNullExprClass");
35243530 return ErrorUnexpected;
35253531 case ZigClangStmt_GenericSelectionExprClass:
3526 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GenericSelectionExprClass");
3532 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GenericSelectionExprClass");
35273533 return ErrorUnexpected;
35283534 case ZigClangStmt_ImaginaryLiteralClass:
3529 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ImaginaryLiteralClass");
3535 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ImaginaryLiteralClass");
35303536 return ErrorUnexpected;
35313537 case ZigClangStmt_ImplicitValueInitExprClass:
3532 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ImplicitValueInitExprClass");
3538 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ImplicitValueInitExprClass");
35333539 return ErrorUnexpected;
35343540 case ZigClangStmt_InitListExprClass:
3535 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C InitListExprClass");
3541 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C InitListExprClass");
35363542 return ErrorUnexpected;
35373543 case ZigClangStmt_LambdaExprClass:
3538 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C LambdaExprClass");
3544 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C LambdaExprClass");
35393545 return ErrorUnexpected;
35403546 case ZigClangStmt_MSPropertyRefExprClass:
3541 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSPropertyRefExprClass");
3547 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSPropertyRefExprClass");
35423548 return ErrorUnexpected;
35433549 case ZigClangStmt_MSPropertySubscriptExprClass:
3544 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSPropertySubscriptExprClass");
3550 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSPropertySubscriptExprClass");
35453551 return ErrorUnexpected;
35463552 case ZigClangStmt_MaterializeTemporaryExprClass:
3547 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MaterializeTemporaryExprClass");
3553 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MaterializeTemporaryExprClass");
35483554 return ErrorUnexpected;
35493555 case ZigClangStmt_NoInitExprClass:
3550 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C NoInitExprClass");
3556 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C NoInitExprClass");
35513557 return ErrorUnexpected;
35523558 case ZigClangStmt_OMPArraySectionExprClass:
3553 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPArraySectionExprClass");
3559 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPArraySectionExprClass");
35543560 return ErrorUnexpected;
35553561 case ZigClangStmt_ObjCArrayLiteralClass:
3556 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCArrayLiteralClass");
3562 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCArrayLiteralClass");
35573563 return ErrorUnexpected;
35583564 case ZigClangStmt_ObjCAvailabilityCheckExprClass:
3559 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAvailabilityCheckExprClass");
3565 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAvailabilityCheckExprClass");
35603566 return ErrorUnexpected;
35613567 case ZigClangStmt_ObjCBoolLiteralExprClass:
3562 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCBoolLiteralExprClass");
3568 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCBoolLiteralExprClass");
35633569 return ErrorUnexpected;
35643570 case ZigClangStmt_ObjCBoxedExprClass:
3565 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCBoxedExprClass");
3571 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCBoxedExprClass");
35663572 return ErrorUnexpected;
35673573 case ZigClangStmt_ObjCDictionaryLiteralClass:
3568 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCDictionaryLiteralClass");
3574 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCDictionaryLiteralClass");
35693575 return ErrorUnexpected;
35703576 case ZigClangStmt_ObjCEncodeExprClass:
3571 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCEncodeExprClass");
3577 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCEncodeExprClass");
35723578 return ErrorUnexpected;
35733579 case ZigClangStmt_ObjCIndirectCopyRestoreExprClass:
3574 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCIndirectCopyRestoreExprClass");
3580 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCIndirectCopyRestoreExprClass");
35753581 return ErrorUnexpected;
35763582 case ZigClangStmt_ObjCIsaExprClass:
3577 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCIsaExprClass");
3583 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCIsaExprClass");
35783584 return ErrorUnexpected;
35793585 case ZigClangStmt_ObjCIvarRefExprClass:
3580 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCIvarRefExprClass");
3586 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCIvarRefExprClass");
35813587 return ErrorUnexpected;
35823588 case ZigClangStmt_ObjCMessageExprClass:
3583 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCMessageExprClass");
3589 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCMessageExprClass");
35843590 return ErrorUnexpected;
35853591 case ZigClangStmt_ObjCPropertyRefExprClass:
3586 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCPropertyRefExprClass");
3592 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCPropertyRefExprClass");
35873593 return ErrorUnexpected;
35883594 case ZigClangStmt_ObjCProtocolExprClass:
3589 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCProtocolExprClass");
3595 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCProtocolExprClass");
35903596 return ErrorUnexpected;
35913597 case ZigClangStmt_ObjCSelectorExprClass:
3592 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCSelectorExprClass");
3598 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCSelectorExprClass");
35933599 return ErrorUnexpected;
35943600 case ZigClangStmt_ObjCStringLiteralClass:
3595 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCStringLiteralClass");
3601 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCStringLiteralClass");
35963602 return ErrorUnexpected;
35973603 case ZigClangStmt_ObjCSubscriptRefExprClass:
3598 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCSubscriptRefExprClass");
3604 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCSubscriptRefExprClass");
35993605 return ErrorUnexpected;
36003606 case ZigClangStmt_OffsetOfExprClass:
3601 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OffsetOfExprClass");
3607 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OffsetOfExprClass");
36023608 return ErrorUnexpected;
36033609 case ZigClangStmt_OpaqueValueExprClass:
3604 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OpaqueValueExprClass");
3610 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OpaqueValueExprClass");
36053611 return ErrorUnexpected;
36063612 case ZigClangStmt_UnresolvedLookupExprClass:
3607 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C UnresolvedLookupExprClass");
3613 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C UnresolvedLookupExprClass");
36083614 return ErrorUnexpected;
36093615 case ZigClangStmt_UnresolvedMemberExprClass:
3610 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C UnresolvedMemberExprClass");
3616 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C UnresolvedMemberExprClass");
36113617 return ErrorUnexpected;
36123618 case ZigClangStmt_PackExpansionExprClass:
3613 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C PackExpansionExprClass");
3619 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C PackExpansionExprClass");
36143620 return ErrorUnexpected;
36153621 case ZigClangStmt_ParenListExprClass:
3616 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ParenListExprClass");
3622 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ParenListExprClass");
36173623 return ErrorUnexpected;
36183624 case ZigClangStmt_PseudoObjectExprClass:
3619 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C PseudoObjectExprClass");
3625 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C PseudoObjectExprClass");
36203626 return ErrorUnexpected;
36213627 case ZigClangStmt_ShuffleVectorExprClass:
3622 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ShuffleVectorExprClass");
3628 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ShuffleVectorExprClass");
36233629 return ErrorUnexpected;
36243630 case ZigClangStmt_SizeOfPackExprClass:
3625 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SizeOfPackExprClass");
3631 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SizeOfPackExprClass");
36263632 return ErrorUnexpected;
36273633 case ZigClangStmt_SubstNonTypeTemplateParmExprClass:
3628 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SubstNonTypeTemplateParmExprClass");
3634 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SubstNonTypeTemplateParmExprClass");
36293635 return ErrorUnexpected;
36303636 case ZigClangStmt_SubstNonTypeTemplateParmPackExprClass:
3631 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SubstNonTypeTemplateParmPackExprClass");
3637 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SubstNonTypeTemplateParmPackExprClass");
36323638 return ErrorUnexpected;
36333639 case ZigClangStmt_TypeTraitExprClass:
3634 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C TypeTraitExprClass");
3640 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C TypeTraitExprClass");
36353641 return ErrorUnexpected;
36363642 case ZigClangStmt_TypoExprClass:
3637 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C TypoExprClass");
3643 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C TypoExprClass");
36383644 return ErrorUnexpected;
36393645 case ZigClangStmt_VAArgExprClass:
3640 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C VAArgExprClass");
3646 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C VAArgExprClass");
36413647 return ErrorUnexpected;
36423648 case ZigClangStmt_GotoStmtClass:
3643 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GotoStmtClass");
3649 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GotoStmtClass");
36443650 return ErrorUnexpected;
36453651 case ZigClangStmt_IndirectGotoStmtClass:
3646 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C IndirectGotoStmtClass");
3652 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C IndirectGotoStmtClass");
36473653 return ErrorUnexpected;
36483654 case ZigClangStmt_LabelStmtClass:
3649 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C LabelStmtClass");
3655 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C LabelStmtClass");
36503656 return ErrorUnexpected;
36513657 case ZigClangStmt_MSDependentExistsStmtClass:
3652 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSDependentExistsStmtClass");
3658 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSDependentExistsStmtClass");
36533659 return ErrorUnexpected;
36543660 case ZigClangStmt_OMPAtomicDirectiveClass:
3655 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPAtomicDirectiveClass");
3661 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPAtomicDirectiveClass");
36563662 return ErrorUnexpected;
36573663 case ZigClangStmt_OMPBarrierDirectiveClass:
3658 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPBarrierDirectiveClass");
3664 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPBarrierDirectiveClass");
36593665 return ErrorUnexpected;
36603666 case ZigClangStmt_OMPCancelDirectiveClass:
3661 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPCancelDirectiveClass");
3667 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPCancelDirectiveClass");
36623668 return ErrorUnexpected;
36633669 case ZigClangStmt_OMPCancellationPointDirectiveClass:
3664 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPCancellationPointDirectiveClass");
3670 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPCancellationPointDirectiveClass");
36653671 return ErrorUnexpected;
36663672 case ZigClangStmt_OMPCriticalDirectiveClass:
3667 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPCriticalDirectiveClass");
3673 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPCriticalDirectiveClass");
36683674 return ErrorUnexpected;
36693675 case ZigClangStmt_OMPFlushDirectiveClass:
3670 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPFlushDirectiveClass");
3676 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPFlushDirectiveClass");
36713677 return ErrorUnexpected;
36723678 case ZigClangStmt_OMPDistributeDirectiveClass:
3673 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeDirectiveClass");
3679 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeDirectiveClass");
36743680 return ErrorUnexpected;
36753681 case ZigClangStmt_OMPDistributeParallelForDirectiveClass:
3676 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeParallelForDirectiveClass");
3682 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeParallelForDirectiveClass");
36773683 return ErrorUnexpected;
36783684 case ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass:
3679 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeParallelForSimdDirectiveClass");
3685 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeParallelForSimdDirectiveClass");
36803686 return ErrorUnexpected;
36813687 case ZigClangStmt_OMPDistributeSimdDirectiveClass:
3682 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeSimdDirectiveClass");
3688 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeSimdDirectiveClass");
36833689 return ErrorUnexpected;
36843690 case ZigClangStmt_OMPForDirectiveClass:
3685 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPForDirectiveClass");
3691 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPForDirectiveClass");
36863692 return ErrorUnexpected;
36873693 case ZigClangStmt_OMPForSimdDirectiveClass:
3688 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPForSimdDirectiveClass");
3694 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPForSimdDirectiveClass");
36893695 return ErrorUnexpected;
36903696 case ZigClangStmt_OMPParallelForDirectiveClass:
3691 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelForDirectiveClass");
3697 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelForDirectiveClass");
36923698 return ErrorUnexpected;
36933699 case ZigClangStmt_OMPParallelForSimdDirectiveClass:
3694 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelForSimdDirectiveClass");
3700 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelForSimdDirectiveClass");
36953701 return ErrorUnexpected;
36963702 case ZigClangStmt_OMPSimdDirectiveClass:
3697 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSimdDirectiveClass");
3703 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSimdDirectiveClass");
36983704 return ErrorUnexpected;
36993705 case ZigClangStmt_OMPTargetParallelForSimdDirectiveClass:
3700 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetParallelForSimdDirectiveClass");
3706 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetParallelForSimdDirectiveClass");
37013707 return ErrorUnexpected;
37023708 case ZigClangStmt_OMPTargetSimdDirectiveClass:
3703 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetSimdDirectiveClass");
3709 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetSimdDirectiveClass");
37043710 return ErrorUnexpected;
37053711 case ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass:
3706 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeDirectiveClass");
3712 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeDirectiveClass");
37073713 return ErrorUnexpected;
37083714 case ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass:
3709 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass");
3715 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass");
37103716 return ErrorUnexpected;
37113717 case ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
3712 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass");
3718 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass");
37133719 return ErrorUnexpected;
37143720 case ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass:
3715 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass");
3721 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass");
37163722 return ErrorUnexpected;
37173723 case ZigClangStmt_OMPTaskLoopDirectiveClass:
3718 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskLoopDirectiveClass");
3724 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskLoopDirectiveClass");
37193725 return ErrorUnexpected;
37203726 case ZigClangStmt_OMPTaskLoopSimdDirectiveClass:
3721 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskLoopSimdDirectiveClass");
3727 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskLoopSimdDirectiveClass");
37223728 return ErrorUnexpected;
37233729 case ZigClangStmt_OMPTeamsDistributeDirectiveClass:
3724 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeDirectiveClass");
3730 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeDirectiveClass");
37253731 return ErrorUnexpected;
37263732 case ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass:
3727 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass");
3733 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass");
37283734 return ErrorUnexpected;
37293735 case ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass:
3730 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass");
3736 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass");
37313737 return ErrorUnexpected;
37323738 case ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass:
3733 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeSimdDirectiveClass");
3739 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeSimdDirectiveClass");
37343740 return ErrorUnexpected;
37353741 case ZigClangStmt_OMPMasterDirectiveClass:
3736 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPMasterDirectiveClass");
3742 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPMasterDirectiveClass");
37373743 return ErrorUnexpected;
37383744 case ZigClangStmt_OMPOrderedDirectiveClass:
3739 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPOrderedDirectiveClass");
3745 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPOrderedDirectiveClass");
37403746 return ErrorUnexpected;
37413747 case ZigClangStmt_OMPParallelDirectiveClass:
3742 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelDirectiveClass");
3748 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelDirectiveClass");
37433749 return ErrorUnexpected;
37443750 case ZigClangStmt_OMPParallelSectionsDirectiveClass:
3745 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelSectionsDirectiveClass");
3751 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelSectionsDirectiveClass");
37463752 return ErrorUnexpected;
37473753 case ZigClangStmt_OMPSectionDirectiveClass:
3748 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSectionDirectiveClass");
3754 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSectionDirectiveClass");
37493755 return ErrorUnexpected;
37503756 case ZigClangStmt_OMPSectionsDirectiveClass:
3751 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSectionsDirectiveClass");
3757 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSectionsDirectiveClass");
37523758 return ErrorUnexpected;
37533759 case ZigClangStmt_OMPSingleDirectiveClass:
3754 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSingleDirectiveClass");
3760 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSingleDirectiveClass");
37553761 return ErrorUnexpected;
37563762 case ZigClangStmt_OMPTargetDataDirectiveClass:
3757 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetDataDirectiveClass");
3763 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetDataDirectiveClass");
37583764 return ErrorUnexpected;
37593765 case ZigClangStmt_OMPTargetDirectiveClass:
3760 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetDirectiveClass");
3766 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetDirectiveClass");
37613767 return ErrorUnexpected;
37623768 case ZigClangStmt_OMPTargetEnterDataDirectiveClass:
3763 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetEnterDataDirectiveClass");
3769 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetEnterDataDirectiveClass");
37643770 return ErrorUnexpected;
37653771 case ZigClangStmt_OMPTargetExitDataDirectiveClass:
3766 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetExitDataDirectiveClass");
3772 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetExitDataDirectiveClass");
37673773 return ErrorUnexpected;
37683774 case ZigClangStmt_OMPTargetParallelDirectiveClass:
3769 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetParallelDirectiveClass");
3775 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetParallelDirectiveClass");
37703776 return ErrorUnexpected;
37713777 case ZigClangStmt_OMPTargetParallelForDirectiveClass:
3772 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetParallelForDirectiveClass");
3778 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetParallelForDirectiveClass");
37733779 return ErrorUnexpected;
37743780 case ZigClangStmt_OMPTargetTeamsDirectiveClass:
3775 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDirectiveClass");
3781 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDirectiveClass");
37763782 return ErrorUnexpected;
37773783 case ZigClangStmt_OMPTargetUpdateDirectiveClass:
3778 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetUpdateDirectiveClass");
3784 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetUpdateDirectiveClass");
37793785 return ErrorUnexpected;
37803786 case ZigClangStmt_OMPTaskDirectiveClass:
3781 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskDirectiveClass");
3787 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskDirectiveClass");
37823788 return ErrorUnexpected;
37833789 case ZigClangStmt_OMPTaskgroupDirectiveClass:
3784 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskgroupDirectiveClass");
3790 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskgroupDirectiveClass");
37853791 return ErrorUnexpected;
37863792 case ZigClangStmt_OMPTaskwaitDirectiveClass:
3787 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskwaitDirectiveClass");
3793 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskwaitDirectiveClass");
37883794 return ErrorUnexpected;
37893795 case ZigClangStmt_OMPTaskyieldDirectiveClass:
3790 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskyieldDirectiveClass");
3796 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskyieldDirectiveClass");
37913797 return ErrorUnexpected;
37923798 case ZigClangStmt_OMPTeamsDirectiveClass:
3793 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDirectiveClass");
3799 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDirectiveClass");
37943800 return ErrorUnexpected;
37953801 case ZigClangStmt_ObjCAtCatchStmtClass:
3796 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtCatchStmtClass");
3802 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtCatchStmtClass");
37973803 return ErrorUnexpected;
37983804 case ZigClangStmt_ObjCAtFinallyStmtClass:
3799 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtFinallyStmtClass");
3805 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtFinallyStmtClass");
38003806 return ErrorUnexpected;
38013807 case ZigClangStmt_ObjCAtSynchronizedStmtClass:
3802 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtSynchronizedStmtClass");
3808 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtSynchronizedStmtClass");
38033809 return ErrorUnexpected;
38043810 case ZigClangStmt_ObjCAtThrowStmtClass:
3805 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtThrowStmtClass");
3811 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtThrowStmtClass");
38063812 return ErrorUnexpected;
38073813 case ZigClangStmt_ObjCAtTryStmtClass:
3808 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtTryStmtClass");
3814 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtTryStmtClass");
38093815 return ErrorUnexpected;
38103816 case ZigClangStmt_ObjCAutoreleasePoolStmtClass:
3811 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAutoreleasePoolStmtClass");
3817 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAutoreleasePoolStmtClass");
38123818 return ErrorUnexpected;
38133819 case ZigClangStmt_ObjCForCollectionStmtClass:
3814 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCForCollectionStmtClass");
3820 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCForCollectionStmtClass");
38153821 return ErrorUnexpected;
38163822 case ZigClangStmt_SEHExceptStmtClass:
3817 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHExceptStmtClass");
3823 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHExceptStmtClass");
38183824 return ErrorUnexpected;
38193825 case ZigClangStmt_SEHFinallyStmtClass:
3820 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHFinallyStmtClass");
3826 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHFinallyStmtClass");
38213827 return ErrorUnexpected;
38223828 case ZigClangStmt_SEHLeaveStmtClass:
3823 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHLeaveStmtClass");
3829 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHLeaveStmtClass");
38243830 return ErrorUnexpected;
38253831 case ZigClangStmt_SEHTryStmtClass:
3826 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHTryStmtClass");
3832 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHTryStmtClass");
38273833 return ErrorUnexpected;
38283834 }
38293835 zig_unreachable();
......@@ -3835,7 +3841,7 @@ static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope
38353841{
38363842 AstNode *result_node;
38373843 TransScope *result_scope;
3838 if (trans_stmt_extra(c, scope, expr, result_used, lrval, &result_node, &result_scope, nullptr)) {
3844 if (trans_stmt_extra(c, scope, (const ZigClangStmt *)expr, result_used, lrval, &result_node, &result_scope, nullptr)) {
38393845 return nullptr;
38403846 }
38413847 return result_node;
......@@ -3843,7 +3849,7 @@ static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope
38433849
38443850// Statements have no result and no concept of L or R value.
38453851// Returns child scope, or null if there was an error
3846static TransScope *trans_stmt(Context *c, TransScope *scope, const clang::Stmt *stmt, AstNode **out_node) {
3852static TransScope *trans_stmt(Context *c, TransScope *scope, const ZigClangStmt *stmt, AstNode **out_node) {
38473853 TransScope *child_scope;
38483854 if (trans_stmt_extra(c, scope, stmt, ResultUsedNo, TransRValue, out_node, &child_scope, nullptr)) {
38493855 return nullptr;
......@@ -3913,7 +3919,7 @@ static void visit_fn_decl(Context *c, const clang::FunctionDecl *fn_decl) {
39133919
39143920 // actual function definition with body
39153921 c->ptr_params.clear();
3916 clang::Stmt *body = fn_decl->getBody();
3922 const ZigClangStmt *body = bitcast(fn_decl->getBody());
39173923 AstNode *actual_body_node;
39183924 TransScope *result_scope = trans_stmt(c, scope, body, &actual_body_node);
39193925 if (result_scope == nullptr) {
src/zig_clang.cpp+14
......@@ -871,3 +871,17 @@ const char *ZigClangType_getTypeClassName(const ZigClangType *self) {
871871 return casted->getTypeClassName();
872872}
873873
874ZigClangSourceLocation ZigClangStmt_getBeginLoc(const ZigClangStmt *self) {
875 auto casted = reinterpret_cast<const clang::Stmt *>(self);
876 return bitcast(casted->getBeginLoc());
877}
878
879bool ZigClangStmt_classof_Expr(const ZigClangStmt *self) {
880 auto casted = reinterpret_cast<const clang::Stmt *>(self);
881 return clang::Expr::classof(casted);
882}
883
884ZigClangStmtClass ZigClangStmt_getStmtClass(const ZigClangStmt *self) {
885 auto casted = reinterpret_cast<const clang::Stmt *>(self);
886 return (ZigClangStmtClass)casted->getStmtClass();
887}
src/zig_clang.h+5
......@@ -547,4 +547,9 @@ ZIG_EXTERN_C bool ZigClangQualType_isRestrictQualified(ZigClangQualType);
547547ZIG_EXTERN_C ZigClangTypeClass ZigClangType_getTypeClass(const ZigClangType *self);
548548ZIG_EXTERN_C bool ZigClangType_isVoidType(const ZigClangType *self);
549549ZIG_EXTERN_C const char *ZigClangType_getTypeClassName(const ZigClangType *self);
550
551ZIG_EXTERN_C ZigClangSourceLocation ZigClangStmt_getBeginLoc(const ZigClangStmt *self);
552ZIG_EXTERN_C ZigClangStmtClass ZigClangStmt_getStmtClass(const ZigClangStmt *self);
553ZIG_EXTERN_C bool ZigClangStmt_classof_Expr(const ZigClangStmt *self);
554
550555#endif