translate-c: move some code to the C API

See #1964
This commit is contained in:
Andrew Kelley 2019-04-12 14:38:15 -04:00
parent 63f2e96eea
commit 9d229791c6
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
3 changed files with 217 additions and 192 deletions

View File

@ -116,16 +116,20 @@ static AstNode *resolve_record_decl(Context *c, const ZigClangRecordDecl *record
static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl); static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl);
static AstNode *resolve_typedef_decl(Context *c, const ZigClangTypedefNameDecl *typedef_decl); static AstNode *resolve_typedef_decl(Context *c, const ZigClangTypedefNameDecl *typedef_decl);
static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *stmt, static int trans_stmt_extra(Context *c, TransScope *scope, const ZigClangStmt *stmt,
ResultUsed result_used, TransLRValue lrval, ResultUsed result_used, TransLRValue lrval,
AstNode **out_node, TransScope **out_child_scope, AstNode **out_node, TransScope **out_child_scope,
TransScope **out_node_scope); TransScope **out_node_scope);
static TransScope *trans_stmt(Context *c, TransScope *scope, const clang::Stmt *stmt, AstNode **out_node); static TransScope *trans_stmt(Context *c, TransScope *scope, const ZigClangStmt *stmt, AstNode **out_node);
static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope, const clang::Expr *expr, TransLRValue lrval); static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope, const clang::Expr *expr, TransLRValue lrval);
static AstNode *trans_qual_type(Context *c, ZigClangQualType qt, ZigClangSourceLocation source_loc); static AstNode *trans_qual_type(Context *c, ZigClangQualType qt, ZigClangSourceLocation source_loc);
static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *scope, const clang::Expr *expr, TransLRValue lrval); static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *scope, const clang::Expr *expr, TransLRValue lrval);
static AstNode *trans_ap_value(Context *c, clang::APValue *ap_value, ZigClangQualType qt, ZigClangSourceLocation source_loc); static AstNode *trans_ap_value(Context *c, clang::APValue *ap_value, ZigClangQualType qt, ZigClangSourceLocation source_loc);
static const ZigClangStmt *bitcast(const clang::Stmt *src) {
return reinterpret_cast<const ZigClangStmt *>(src);
}
static ZigClangSourceLocation bitcast(clang::SourceLocation src) { static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
ZigClangSourceLocation dest; ZigClangSourceLocation dest;
memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangSourceLocation)); memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangSourceLocation));
@ -1217,9 +1221,11 @@ static int trans_compound_stmt_inline(Context *c, TransScope *scope, const clang
AstNode *block_node, TransScope **out_node_scope) AstNode *block_node, TransScope **out_node_scope)
{ {
assert(block_node->type == NodeTypeBlock); assert(block_node->type == NodeTypeBlock);
for (clang::CompoundStmt::const_body_iterator it = stmt->body_begin(), end_it = stmt->body_end(); it != end_it; ++it) { for (clang::CompoundStmt::const_body_iterator it = stmt->body_begin(), end_it = stmt->body_end();
it != end_it; ++it)
{
AstNode *child_node; AstNode *child_node;
scope = trans_stmt(c, scope, *it, &child_node); scope = trans_stmt(c, scope, bitcast(*it), &child_node);
if (scope == nullptr) if (scope == nullptr)
return ErrorUnexpected; return ErrorUnexpected;
if (child_node != nullptr) if (child_node != nullptr)
@ -2750,7 +2756,7 @@ static AstNode *trans_while_loop(Context *c, TransScope *scope, const clang::Whi
if (while_scope->node->data.while_expr.condition == nullptr) if (while_scope->node->data.while_expr.condition == nullptr)
return nullptr; return nullptr;
TransScope *body_scope = trans_stmt(c, &while_scope->base, stmt->getBody(), TransScope *body_scope = trans_stmt(c, &while_scope->base, bitcast(stmt->getBody()),
&while_scope->node->data.while_expr.body); &while_scope->node->data.while_expr.body);
if (body_scope == nullptr) if (body_scope == nullptr)
return nullptr; return nullptr;
@ -2763,12 +2769,12 @@ static AstNode *trans_if_statement(Context *c, TransScope *scope, const clang::I
// if (c) t else e // if (c) t else e
AstNode *if_node = trans_create_node(c, NodeTypeIfBoolExpr); AstNode *if_node = trans_create_node(c, NodeTypeIfBoolExpr);
TransScope *then_scope = trans_stmt(c, scope, stmt->getThen(), &if_node->data.if_bool_expr.then_block); TransScope *then_scope = trans_stmt(c, scope, bitcast(stmt->getThen()), &if_node->data.if_bool_expr.then_block);
if (then_scope == nullptr) if (then_scope == nullptr)
return nullptr; return nullptr;
if (stmt->getElse() != nullptr) { if (stmt->getElse() != nullptr) {
TransScope *else_scope = trans_stmt(c, scope, stmt->getElse(), &if_node->data.if_bool_expr.else_node); TransScope *else_scope = trans_stmt(c, scope, bitcast(stmt->getElse()), &if_node->data.if_bool_expr.else_node);
if (else_scope == nullptr) if (else_scope == nullptr)
return nullptr; return nullptr;
} }
@ -2911,7 +2917,7 @@ static AstNode *trans_do_loop(Context *c, TransScope *parent_scope, const clang:
// zig: } // zig: }
// We call the low level function so that we can set child_scope to the scope of the generated block. // We call the low level function so that we can set child_scope to the scope of the generated block.
if (trans_stmt_extra(c, &while_scope->base, stmt->getBody(), ResultUsedNo, TransRValue, &body_node, if (trans_stmt_extra(c, &while_scope->base, bitcast(stmt->getBody()), ResultUsedNo, TransRValue, &body_node,
nullptr, &child_scope)) nullptr, &child_scope))
{ {
return nullptr; return nullptr;
@ -2929,7 +2935,7 @@ static AstNode *trans_do_loop(Context *c, TransScope *parent_scope, const clang:
TransScopeBlock *child_block_scope = trans_scope_block_create(c, &while_scope->base); TransScopeBlock *child_block_scope = trans_scope_block_create(c, &while_scope->base);
body_node = child_block_scope->node; body_node = child_block_scope->node;
AstNode *child_statement; AstNode *child_statement;
child_scope = trans_stmt(c, &child_block_scope->base, stmt->getBody(), &child_statement); child_scope = trans_stmt(c, &child_block_scope->base, bitcast(stmt->getBody()), &child_statement);
if (child_scope == nullptr) return nullptr; if (child_scope == nullptr) return nullptr;
if (child_statement != nullptr) { if (child_statement != nullptr) {
body_node->data.block.statements.append(child_statement); body_node->data.block.statements.append(child_statement);
@ -2955,7 +2961,7 @@ static AstNode *trans_for_loop(Context *c, TransScope *parent_scope, const clang
AstNode *loop_block_node; AstNode *loop_block_node;
TransScopeWhile *while_scope; TransScopeWhile *while_scope;
TransScope *cond_scope; TransScope *cond_scope;
const clang::Stmt *init_stmt = stmt->getInit(); const ZigClangStmt *init_stmt = bitcast(stmt->getInit());
if (init_stmt == nullptr) { if (init_stmt == nullptr) {
while_scope = trans_scope_while_create(c, parent_scope); while_scope = trans_scope_while_create(c, parent_scope);
loop_block_node = while_scope->node; loop_block_node = while_scope->node;
@ -2976,12 +2982,12 @@ static AstNode *trans_for_loop(Context *c, TransScope *parent_scope, const clang
child_scope->node->data.block.statements.append(while_scope->node); child_scope->node->data.block.statements.append(while_scope->node);
} }
const clang::Stmt *cond_stmt = stmt->getCond(); const ZigClangStmt *cond_stmt = bitcast(stmt->getCond());
if (cond_stmt == nullptr) { if (cond_stmt == nullptr) {
while_scope->node->data.while_expr.condition = trans_create_node_bool(c, true); while_scope->node->data.while_expr.condition = trans_create_node_bool(c, true);
} else { } else {
if (clang::Expr::classof(cond_stmt)) { if (ZigClangStmt_classof_Expr(cond_stmt)) {
const clang::Expr *cond_expr = static_cast<const clang::Expr*>(cond_stmt); const clang::Expr *cond_expr = reinterpret_cast<const clang::Expr*>(cond_stmt);
while_scope->node->data.while_expr.condition = trans_bool_expr(c, ResultUsedYes, cond_scope, cond_expr, TransRValue); while_scope->node->data.while_expr.condition = trans_bool_expr(c, ResultUsedYes, cond_scope, cond_expr, TransRValue);
if (while_scope->node->data.while_expr.condition == nullptr) 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
} }
} }
const clang::Stmt *inc_stmt = stmt->getInc(); const ZigClangStmt *inc_stmt = bitcast(stmt->getInc());
if (inc_stmt != nullptr) { if (inc_stmt != nullptr) {
AstNode *inc_node; AstNode *inc_node;
TransScope *inc_scope = trans_stmt(c, cond_scope, inc_stmt, &inc_node); 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
} }
AstNode *body_statement; AstNode *body_statement;
TransScope *body_scope = trans_stmt(c, &while_scope->base, stmt->getBody(), &body_statement); TransScope *body_scope = trans_stmt(c, &while_scope->base, bitcast(stmt->getBody()), &body_statement);
if (body_scope == nullptr) if (body_scope == nullptr)
return nullptr; return nullptr;
@ -3027,7 +3033,7 @@ static AstNode *trans_switch_stmt(Context *c, TransScope *parent_scope, const cl
switch_scope = trans_scope_switch_create(c, &block_scope->base); switch_scope = trans_scope_switch_create(c, &block_scope->base);
} else { } else {
AstNode *vars_node; AstNode *vars_node;
TransScope *var_scope = trans_stmt(c, &block_scope->base, var_decl_stmt, &vars_node); TransScope *var_scope = trans_stmt(c, &block_scope->base, (const ZigClangStmt *)var_decl_stmt, &vars_node);
if (var_scope == nullptr) if (var_scope == nullptr)
return nullptr; return nullptr;
if (vars_node != nullptr) if (vars_node != nullptr)
@ -3050,8 +3056,8 @@ static AstNode *trans_switch_stmt(Context *c, TransScope *parent_scope, const cl
switch_scope->switch_node->data.switch_expr.expr = expr_node; switch_scope->switch_node->data.switch_expr.expr = expr_node;
AstNode *body_node; AstNode *body_node;
const clang::Stmt *body_stmt = stmt->getBody(); const ZigClangStmt *body_stmt = bitcast(stmt->getBody());
if ((ZigClangStmtClass)body_stmt->getStmtClass() == ZigClangStmt_CompoundStmtClass) { if (ZigClangStmt_getStmtClass(body_stmt) == ZigClangStmt_CompoundStmtClass) {
if (trans_compound_stmt_inline(c, &switch_scope->base, (const clang::CompoundStmt *)body_stmt, if (trans_compound_stmt_inline(c, &switch_scope->base, (const clang::CompoundStmt *)body_stmt,
block_scope->node, nullptr)) block_scope->node, nullptr))
{ {
@ -3119,7 +3125,7 @@ static int trans_switch_case(Context *c, TransScope *parent_scope, const clang::
scope_block->node->data.block.statements.append(case_block); scope_block->node->data.block.statements.append(case_block);
AstNode *sub_stmt_node; AstNode *sub_stmt_node;
TransScope *new_scope = trans_stmt(c, parent_scope, stmt->getSubStmt(), &sub_stmt_node); TransScope *new_scope = trans_stmt(c, parent_scope, bitcast(stmt->getSubStmt()), &sub_stmt_node);
if (new_scope == nullptr) if (new_scope == nullptr)
return ErrorUnexpected; return ErrorUnexpected;
if (sub_stmt_node != nullptr) if (sub_stmt_node != nullptr)
@ -3156,7 +3162,7 @@ static int trans_switch_default(Context *c, TransScope *parent_scope, const clan
scope_block->node->data.block.statements.append(case_block); scope_block->node->data.block.statements.append(case_block);
AstNode *sub_stmt_node; AstNode *sub_stmt_node;
TransScope *new_scope = trans_stmt(c, parent_scope, stmt->getSubStmt(), &sub_stmt_node); TransScope *new_scope = trans_stmt(c, parent_scope, bitcast(stmt->getSubStmt()), &sub_stmt_node);
if (new_scope == nullptr) if (new_scope == nullptr)
return ErrorUnexpected; return ErrorUnexpected;
if (sub_stmt_node != nullptr) if (sub_stmt_node != nullptr)
@ -3219,12 +3225,12 @@ static int wrap_stmt(AstNode **out_node, TransScope **out_scope, TransScope *in_
return ErrorNone; return ErrorNone;
} }
static int trans_stmt_extra(Context *c, TransScope *scope, const clang::Stmt *stmt, static int trans_stmt_extra(Context *c, TransScope *scope, const ZigClangStmt *stmt,
ResultUsed result_used, TransLRValue lrvalue, ResultUsed result_used, TransLRValue lrvalue,
AstNode **out_node, TransScope **out_child_scope, AstNode **out_node, TransScope **out_child_scope,
TransScope **out_node_scope) TransScope **out_node_scope)
{ {
ZigClangStmtClass sc = (ZigClangStmtClass)stmt->getStmtClass(); ZigClangStmtClass sc = ZigClangStmt_getStmtClass(stmt);
switch (sc) { switch (sc) {
case ZigClangStmt_ReturnStmtClass: case ZigClangStmt_ReturnStmtClass:
return wrap_stmt(out_node, out_child_scope, scope, 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
return wrap_stmt(out_node, out_child_scope, scope, return wrap_stmt(out_node, out_child_scope, scope,
trans_stmt_expr(c, result_used, scope, (const clang::StmtExpr *)stmt, out_node_scope)); trans_stmt_expr(c, result_used, scope, (const clang::StmtExpr *)stmt, out_node_scope));
case ZigClangStmt_NoStmtClass: case ZigClangStmt_NoStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C NoStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C NoStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_GCCAsmStmtClass: case ZigClangStmt_GCCAsmStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GCCAsmStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GCCAsmStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_MSAsmStmtClass: case ZigClangStmt_MSAsmStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSAsmStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSAsmStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_AttributedStmtClass: case ZigClangStmt_AttributedStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AttributedStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AttributedStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXCatchStmtClass: case ZigClangStmt_CXXCatchStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXCatchStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXCatchStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXForRangeStmtClass: case ZigClangStmt_CXXForRangeStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXForRangeStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXForRangeStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXTryStmtClass: case ZigClangStmt_CXXTryStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXTryStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXTryStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CapturedStmtClass: case ZigClangStmt_CapturedStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CapturedStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CapturedStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CoreturnStmtClass: case ZigClangStmt_CoreturnStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoreturnStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoreturnStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CoroutineBodyStmtClass: case ZigClangStmt_CoroutineBodyStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoroutineBodyStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoroutineBodyStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_BinaryConditionalOperatorClass: case ZigClangStmt_BinaryConditionalOperatorClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C BinaryConditionalOperatorClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C BinaryConditionalOperatorClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_AddrLabelExprClass: case ZigClangStmt_AddrLabelExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AddrLabelExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AddrLabelExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ArrayInitIndexExprClass: case ZigClangStmt_ArrayInitIndexExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ArrayInitIndexExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ArrayInitIndexExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ArrayInitLoopExprClass: case ZigClangStmt_ArrayInitLoopExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ArrayInitLoopExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ArrayInitLoopExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ArrayTypeTraitExprClass: case ZigClangStmt_ArrayTypeTraitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ArrayTypeTraitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ArrayTypeTraitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_AsTypeExprClass: case ZigClangStmt_AsTypeExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AsTypeExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AsTypeExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_AtomicExprClass: case ZigClangStmt_AtomicExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C AtomicExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C AtomicExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_BlockExprClass: case ZigClangStmt_BlockExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C BlockExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C BlockExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXBindTemporaryExprClass: case ZigClangStmt_CXXBindTemporaryExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXBindTemporaryExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXBindTemporaryExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXBoolLiteralExprClass: case ZigClangStmt_CXXBoolLiteralExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXBoolLiteralExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXBoolLiteralExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXConstructExprClass: case ZigClangStmt_CXXConstructExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXConstructExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXConstructExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXTemporaryObjectExprClass: case ZigClangStmt_CXXTemporaryObjectExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXTemporaryObjectExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXTemporaryObjectExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXDefaultArgExprClass: case ZigClangStmt_CXXDefaultArgExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDefaultArgExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDefaultArgExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXDefaultInitExprClass: case ZigClangStmt_CXXDefaultInitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDefaultInitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDefaultInitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXDeleteExprClass: case ZigClangStmt_CXXDeleteExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDeleteExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDeleteExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXDependentScopeMemberExprClass: case ZigClangStmt_CXXDependentScopeMemberExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDependentScopeMemberExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDependentScopeMemberExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXFoldExprClass: case ZigClangStmt_CXXFoldExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXFoldExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXFoldExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXInheritedCtorInitExprClass: case ZigClangStmt_CXXInheritedCtorInitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXInheritedCtorInitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXInheritedCtorInitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXNewExprClass: case ZigClangStmt_CXXNewExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXNewExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXNewExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXNoexceptExprClass: case ZigClangStmt_CXXNoexceptExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXNoexceptExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXNoexceptExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXNullPtrLiteralExprClass: case ZigClangStmt_CXXNullPtrLiteralExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXNullPtrLiteralExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXNullPtrLiteralExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXPseudoDestructorExprClass: case ZigClangStmt_CXXPseudoDestructorExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXPseudoDestructorExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXPseudoDestructorExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXScalarValueInitExprClass: case ZigClangStmt_CXXScalarValueInitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXScalarValueInitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXScalarValueInitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXStdInitializerListExprClass: case ZigClangStmt_CXXStdInitializerListExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXStdInitializerListExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXStdInitializerListExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXThisExprClass: case ZigClangStmt_CXXThisExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXThisExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXThisExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXThrowExprClass: case ZigClangStmt_CXXThrowExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXThrowExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXThrowExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXTypeidExprClass: case ZigClangStmt_CXXTypeidExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXTypeidExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXTypeidExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXUnresolvedConstructExprClass: case ZigClangStmt_CXXUnresolvedConstructExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXUnresolvedConstructExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXUnresolvedConstructExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXUuidofExprClass: case ZigClangStmt_CXXUuidofExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXUuidofExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXUuidofExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CUDAKernelCallExprClass: case ZigClangStmt_CUDAKernelCallExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CUDAKernelCallExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CUDAKernelCallExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXMemberCallExprClass: case ZigClangStmt_CXXMemberCallExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXMemberCallExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXMemberCallExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXOperatorCallExprClass: case ZigClangStmt_CXXOperatorCallExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXOperatorCallExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXOperatorCallExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_UserDefinedLiteralClass: case ZigClangStmt_UserDefinedLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C UserDefinedLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C UserDefinedLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXFunctionalCastExprClass: case ZigClangStmt_CXXFunctionalCastExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXFunctionalCastExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXFunctionalCastExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXConstCastExprClass: case ZigClangStmt_CXXConstCastExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXConstCastExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXConstCastExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXDynamicCastExprClass: case ZigClangStmt_CXXDynamicCastExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXDynamicCastExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXDynamicCastExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXReinterpretCastExprClass: case ZigClangStmt_CXXReinterpretCastExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXReinterpretCastExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXReinterpretCastExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CXXStaticCastExprClass: case ZigClangStmt_CXXStaticCastExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CXXStaticCastExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CXXStaticCastExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCBridgedCastExprClass: case ZigClangStmt_ObjCBridgedCastExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCBridgedCastExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCBridgedCastExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CharacterLiteralClass: case ZigClangStmt_CharacterLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CharacterLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CharacterLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ChooseExprClass: case ZigClangStmt_ChooseExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ChooseExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ChooseExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CompoundLiteralExprClass: case ZigClangStmt_CompoundLiteralExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CompoundLiteralExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CompoundLiteralExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ConvertVectorExprClass: case ZigClangStmt_ConvertVectorExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ConvertVectorExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ConvertVectorExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CoawaitExprClass: case ZigClangStmt_CoawaitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoawaitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoawaitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_CoyieldExprClass: case ZigClangStmt_CoyieldExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CoyieldExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C CoyieldExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_DependentCoawaitExprClass: case ZigClangStmt_DependentCoawaitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DependentCoawaitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DependentCoawaitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_DependentScopeDeclRefExprClass: case ZigClangStmt_DependentScopeDeclRefExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DependentScopeDeclRefExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DependentScopeDeclRefExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_DesignatedInitExprClass: case ZigClangStmt_DesignatedInitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DesignatedInitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DesignatedInitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_DesignatedInitUpdateExprClass: case ZigClangStmt_DesignatedInitUpdateExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C DesignatedInitUpdateExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C DesignatedInitUpdateExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ExpressionTraitExprClass: case ZigClangStmt_ExpressionTraitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ExpressionTraitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ExpressionTraitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ExtVectorElementExprClass: case ZigClangStmt_ExtVectorElementExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ExtVectorElementExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ExtVectorElementExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_FixedPointLiteralClass: case ZigClangStmt_FixedPointLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C FixedPointLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C FixedPointLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_FloatingLiteralClass: case ZigClangStmt_FloatingLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C FloatingLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C FloatingLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ExprWithCleanupsClass: case ZigClangStmt_ExprWithCleanupsClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ExprWithCleanupsClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ExprWithCleanupsClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_FunctionParmPackExprClass: case ZigClangStmt_FunctionParmPackExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C FunctionParmPackExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C FunctionParmPackExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_GNUNullExprClass: case ZigClangStmt_GNUNullExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GNUNullExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GNUNullExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_GenericSelectionExprClass: case ZigClangStmt_GenericSelectionExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GenericSelectionExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GenericSelectionExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ImaginaryLiteralClass: case ZigClangStmt_ImaginaryLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ImaginaryLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ImaginaryLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ImplicitValueInitExprClass: case ZigClangStmt_ImplicitValueInitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ImplicitValueInitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ImplicitValueInitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_InitListExprClass: case ZigClangStmt_InitListExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C InitListExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C InitListExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_LambdaExprClass: case ZigClangStmt_LambdaExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C LambdaExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C LambdaExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_MSPropertyRefExprClass: case ZigClangStmt_MSPropertyRefExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSPropertyRefExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSPropertyRefExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_MSPropertySubscriptExprClass: case ZigClangStmt_MSPropertySubscriptExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSPropertySubscriptExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSPropertySubscriptExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_MaterializeTemporaryExprClass: case ZigClangStmt_MaterializeTemporaryExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MaterializeTemporaryExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MaterializeTemporaryExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_NoInitExprClass: case ZigClangStmt_NoInitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C NoInitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C NoInitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPArraySectionExprClass: case ZigClangStmt_OMPArraySectionExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPArraySectionExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPArraySectionExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCArrayLiteralClass: case ZigClangStmt_ObjCArrayLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCArrayLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCArrayLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAvailabilityCheckExprClass: case ZigClangStmt_ObjCAvailabilityCheckExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAvailabilityCheckExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAvailabilityCheckExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCBoolLiteralExprClass: case ZigClangStmt_ObjCBoolLiteralExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCBoolLiteralExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCBoolLiteralExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCBoxedExprClass: case ZigClangStmt_ObjCBoxedExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCBoxedExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCBoxedExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCDictionaryLiteralClass: case ZigClangStmt_ObjCDictionaryLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCDictionaryLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCDictionaryLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCEncodeExprClass: case ZigClangStmt_ObjCEncodeExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCEncodeExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCEncodeExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCIndirectCopyRestoreExprClass: case ZigClangStmt_ObjCIndirectCopyRestoreExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCIndirectCopyRestoreExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCIndirectCopyRestoreExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCIsaExprClass: case ZigClangStmt_ObjCIsaExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCIsaExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCIsaExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCIvarRefExprClass: case ZigClangStmt_ObjCIvarRefExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCIvarRefExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCIvarRefExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCMessageExprClass: case ZigClangStmt_ObjCMessageExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCMessageExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCMessageExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCPropertyRefExprClass: case ZigClangStmt_ObjCPropertyRefExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCPropertyRefExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCPropertyRefExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCProtocolExprClass: case ZigClangStmt_ObjCProtocolExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCProtocolExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCProtocolExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCSelectorExprClass: case ZigClangStmt_ObjCSelectorExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCSelectorExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCSelectorExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCStringLiteralClass: case ZigClangStmt_ObjCStringLiteralClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCStringLiteralClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCStringLiteralClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCSubscriptRefExprClass: case ZigClangStmt_ObjCSubscriptRefExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCSubscriptRefExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCSubscriptRefExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OffsetOfExprClass: case ZigClangStmt_OffsetOfExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OffsetOfExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OffsetOfExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OpaqueValueExprClass: case ZigClangStmt_OpaqueValueExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OpaqueValueExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OpaqueValueExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_UnresolvedLookupExprClass: case ZigClangStmt_UnresolvedLookupExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C UnresolvedLookupExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C UnresolvedLookupExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_UnresolvedMemberExprClass: case ZigClangStmt_UnresolvedMemberExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C UnresolvedMemberExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C UnresolvedMemberExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_PackExpansionExprClass: case ZigClangStmt_PackExpansionExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C PackExpansionExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C PackExpansionExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ParenListExprClass: case ZigClangStmt_ParenListExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ParenListExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ParenListExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_PseudoObjectExprClass: case ZigClangStmt_PseudoObjectExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C PseudoObjectExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C PseudoObjectExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ShuffleVectorExprClass: case ZigClangStmt_ShuffleVectorExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ShuffleVectorExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ShuffleVectorExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SizeOfPackExprClass: case ZigClangStmt_SizeOfPackExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SizeOfPackExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SizeOfPackExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SubstNonTypeTemplateParmExprClass: case ZigClangStmt_SubstNonTypeTemplateParmExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SubstNonTypeTemplateParmExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SubstNonTypeTemplateParmExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SubstNonTypeTemplateParmPackExprClass: case ZigClangStmt_SubstNonTypeTemplateParmPackExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SubstNonTypeTemplateParmPackExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SubstNonTypeTemplateParmPackExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_TypeTraitExprClass: case ZigClangStmt_TypeTraitExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C TypeTraitExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C TypeTraitExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_TypoExprClass: case ZigClangStmt_TypoExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C TypoExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C TypoExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_VAArgExprClass: case ZigClangStmt_VAArgExprClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C VAArgExprClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C VAArgExprClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_GotoStmtClass: case ZigClangStmt_GotoStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C GotoStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C GotoStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_IndirectGotoStmtClass: case ZigClangStmt_IndirectGotoStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C IndirectGotoStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C IndirectGotoStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_LabelStmtClass: case ZigClangStmt_LabelStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C LabelStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C LabelStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_MSDependentExistsStmtClass: case ZigClangStmt_MSDependentExistsStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C MSDependentExistsStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C MSDependentExistsStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPAtomicDirectiveClass: case ZigClangStmt_OMPAtomicDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPAtomicDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPAtomicDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPBarrierDirectiveClass: case ZigClangStmt_OMPBarrierDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPBarrierDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPBarrierDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPCancelDirectiveClass: case ZigClangStmt_OMPCancelDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPCancelDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPCancelDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPCancellationPointDirectiveClass: case ZigClangStmt_OMPCancellationPointDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPCancellationPointDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPCancellationPointDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPCriticalDirectiveClass: case ZigClangStmt_OMPCriticalDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPCriticalDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPCriticalDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPFlushDirectiveClass: case ZigClangStmt_OMPFlushDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPFlushDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPFlushDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPDistributeDirectiveClass: case ZigClangStmt_OMPDistributeDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPDistributeParallelForDirectiveClass: case ZigClangStmt_OMPDistributeParallelForDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeParallelForDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeParallelForDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass: case ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeParallelForSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeParallelForSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPDistributeSimdDirectiveClass: case ZigClangStmt_OMPDistributeSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDistributeSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPDistributeSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPForDirectiveClass: case ZigClangStmt_OMPForDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPForDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPForDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPForSimdDirectiveClass: case ZigClangStmt_OMPForSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPForSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPForSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPParallelForDirectiveClass: case ZigClangStmt_OMPParallelForDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelForDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelForDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPParallelForSimdDirectiveClass: case ZigClangStmt_OMPParallelForSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelForSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelForSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPSimdDirectiveClass: case ZigClangStmt_OMPSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetParallelForSimdDirectiveClass: case ZigClangStmt_OMPTargetParallelForSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetParallelForSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetParallelForSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetSimdDirectiveClass: case ZigClangStmt_OMPTargetSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass: case ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass: case ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeParallelForDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass: case ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeParallelForSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass: case ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDistributeSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTaskLoopDirectiveClass: case ZigClangStmt_OMPTaskLoopDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskLoopDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskLoopDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTaskLoopSimdDirectiveClass: case ZigClangStmt_OMPTaskLoopSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskLoopSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskLoopSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTeamsDistributeDirectiveClass: case ZigClangStmt_OMPTeamsDistributeDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass: case ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeParallelForDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass: case ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeParallelForSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass: case ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDistributeSimdDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDistributeSimdDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPMasterDirectiveClass: case ZigClangStmt_OMPMasterDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPMasterDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPMasterDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPOrderedDirectiveClass: case ZigClangStmt_OMPOrderedDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPOrderedDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPOrderedDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPParallelDirectiveClass: case ZigClangStmt_OMPParallelDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPParallelSectionsDirectiveClass: case ZigClangStmt_OMPParallelSectionsDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPParallelSectionsDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPParallelSectionsDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPSectionDirectiveClass: case ZigClangStmt_OMPSectionDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSectionDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSectionDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPSectionsDirectiveClass: case ZigClangStmt_OMPSectionsDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSectionsDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSectionsDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPSingleDirectiveClass: case ZigClangStmt_OMPSingleDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPSingleDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPSingleDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetDataDirectiveClass: case ZigClangStmt_OMPTargetDataDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetDataDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetDataDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetDirectiveClass: case ZigClangStmt_OMPTargetDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetEnterDataDirectiveClass: case ZigClangStmt_OMPTargetEnterDataDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetEnterDataDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetEnterDataDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetExitDataDirectiveClass: case ZigClangStmt_OMPTargetExitDataDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetExitDataDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetExitDataDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetParallelDirectiveClass: case ZigClangStmt_OMPTargetParallelDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetParallelDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetParallelDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetParallelForDirectiveClass: case ZigClangStmt_OMPTargetParallelForDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetParallelForDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetParallelForDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetTeamsDirectiveClass: case ZigClangStmt_OMPTargetTeamsDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetTeamsDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetTeamsDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTargetUpdateDirectiveClass: case ZigClangStmt_OMPTargetUpdateDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTargetUpdateDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTargetUpdateDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTaskDirectiveClass: case ZigClangStmt_OMPTaskDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTaskgroupDirectiveClass: case ZigClangStmt_OMPTaskgroupDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskgroupDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskgroupDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTaskwaitDirectiveClass: case ZigClangStmt_OMPTaskwaitDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskwaitDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskwaitDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTaskyieldDirectiveClass: case ZigClangStmt_OMPTaskyieldDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTaskyieldDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTaskyieldDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_OMPTeamsDirectiveClass: case ZigClangStmt_OMPTeamsDirectiveClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPTeamsDirectiveClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C OMPTeamsDirectiveClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAtCatchStmtClass: case ZigClangStmt_ObjCAtCatchStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtCatchStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtCatchStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAtFinallyStmtClass: case ZigClangStmt_ObjCAtFinallyStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtFinallyStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtFinallyStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAtSynchronizedStmtClass: case ZigClangStmt_ObjCAtSynchronizedStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtSynchronizedStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtSynchronizedStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAtThrowStmtClass: case ZigClangStmt_ObjCAtThrowStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtThrowStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtThrowStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAtTryStmtClass: case ZigClangStmt_ObjCAtTryStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAtTryStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAtTryStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCAutoreleasePoolStmtClass: case ZigClangStmt_ObjCAutoreleasePoolStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCAutoreleasePoolStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCAutoreleasePoolStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_ObjCForCollectionStmtClass: case ZigClangStmt_ObjCForCollectionStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C ObjCForCollectionStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C ObjCForCollectionStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SEHExceptStmtClass: case ZigClangStmt_SEHExceptStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHExceptStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHExceptStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SEHFinallyStmtClass: case ZigClangStmt_SEHFinallyStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHFinallyStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHFinallyStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SEHLeaveStmtClass: case ZigClangStmt_SEHLeaveStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHLeaveStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHLeaveStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
case ZigClangStmt_SEHTryStmtClass: case ZigClangStmt_SEHTryStmtClass:
emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C SEHTryStmtClass"); emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHTryStmtClass");
return ErrorUnexpected; return ErrorUnexpected;
} }
zig_unreachable(); zig_unreachable();
@ -3835,7 +3841,7 @@ static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope
{ {
AstNode *result_node; AstNode *result_node;
TransScope *result_scope; TransScope *result_scope;
if (trans_stmt_extra(c, scope, expr, result_used, lrval, &result_node, &result_scope, nullptr)) { if (trans_stmt_extra(c, scope, (const ZigClangStmt *)expr, result_used, lrval, &result_node, &result_scope, nullptr)) {
return nullptr; return nullptr;
} }
return result_node; return result_node;
@ -3843,7 +3849,7 @@ static AstNode *trans_expr(Context *c, ResultUsed result_used, TransScope *scope
// Statements have no result and no concept of L or R value. // Statements have no result and no concept of L or R value.
// Returns child scope, or null if there was an error // Returns child scope, or null if there was an error
static TransScope *trans_stmt(Context *c, TransScope *scope, const clang::Stmt *stmt, AstNode **out_node) { static TransScope *trans_stmt(Context *c, TransScope *scope, const ZigClangStmt *stmt, AstNode **out_node) {
TransScope *child_scope; TransScope *child_scope;
if (trans_stmt_extra(c, scope, stmt, ResultUsedNo, TransRValue, out_node, &child_scope, nullptr)) { if (trans_stmt_extra(c, scope, stmt, ResultUsedNo, TransRValue, out_node, &child_scope, nullptr)) {
return nullptr; return nullptr;
@ -3913,7 +3919,7 @@ static void visit_fn_decl(Context *c, const clang::FunctionDecl *fn_decl) {
// actual function definition with body // actual function definition with body
c->ptr_params.clear(); c->ptr_params.clear();
clang::Stmt *body = fn_decl->getBody(); const ZigClangStmt *body = bitcast(fn_decl->getBody());
AstNode *actual_body_node; AstNode *actual_body_node;
TransScope *result_scope = trans_stmt(c, scope, body, &actual_body_node); TransScope *result_scope = trans_stmt(c, scope, body, &actual_body_node);
if (result_scope == nullptr) { if (result_scope == nullptr) {

View File

@ -871,3 +871,17 @@ const char *ZigClangType_getTypeClassName(const ZigClangType *self) {
return casted->getTypeClassName(); return casted->getTypeClassName();
} }
ZigClangSourceLocation ZigClangStmt_getBeginLoc(const ZigClangStmt *self) {
auto casted = reinterpret_cast<const clang::Stmt *>(self);
return bitcast(casted->getBeginLoc());
}
bool ZigClangStmt_classof_Expr(const ZigClangStmt *self) {
auto casted = reinterpret_cast<const clang::Stmt *>(self);
return clang::Expr::classof(casted);
}
ZigClangStmtClass ZigClangStmt_getStmtClass(const ZigClangStmt *self) {
auto casted = reinterpret_cast<const clang::Stmt *>(self);
return (ZigClangStmtClass)casted->getStmtClass();
}

View File

@ -547,4 +547,9 @@ ZIG_EXTERN_C bool ZigClangQualType_isRestrictQualified(ZigClangQualType);
ZIG_EXTERN_C ZigClangTypeClass ZigClangType_getTypeClass(const ZigClangType *self); ZIG_EXTERN_C ZigClangTypeClass ZigClangType_getTypeClass(const ZigClangType *self);
ZIG_EXTERN_C bool ZigClangType_isVoidType(const ZigClangType *self); ZIG_EXTERN_C bool ZigClangType_isVoidType(const ZigClangType *self);
ZIG_EXTERN_C const char *ZigClangType_getTypeClassName(const ZigClangType *self); ZIG_EXTERN_C const char *ZigClangType_getTypeClassName(const ZigClangType *self);
ZIG_EXTERN_C ZigClangSourceLocation ZigClangStmt_getBeginLoc(const ZigClangStmt *self);
ZIG_EXTERN_C ZigClangStmtClass ZigClangStmt_getStmtClass(const ZigClangStmt *self);
ZIG_EXTERN_C bool ZigClangStmt_classof_Expr(const ZigClangStmt *self);
#endif #endif