Move out some intrinsics into separate procedures in llvm_backend.cpp; Rename InlineRangeStmt to UnrollRangeStmt (eventually merge the two AST nodes)

This commit is contained in:
gingerBill
2021-04-24 15:00:01 +01:00
parent c9b82a21e9
commit c29b643a58
6 changed files with 108 additions and 73 deletions

View File

@@ -217,7 +217,7 @@ bool check_is_terminating(Ast *node, String const &label) {
}
case_end;
case_ast_node(rs, InlineRangeStmt, node);
case_ast_node(rs, UnrollRangeStmt, node);
return false;
case_end;
@@ -675,7 +675,7 @@ void add_constant_switch_case(CheckerContext *ctx, Map<TypeAndToken> *seen, Oper
}
void check_inline_range_stmt(CheckerContext *ctx, Ast *node, u32 mod_flags) {
ast_node(irs, InlineRangeStmt, node);
ast_node(irs, UnrollRangeStmt, node);
check_open_scope(ctx, node);
Type *val0 = nullptr;
@@ -1303,7 +1303,7 @@ void check_block_stmt_for_errors(CheckerContext *ctx, Ast *body) {
case Ast_IfStmt:
case Ast_ForStmt:
case Ast_RangeStmt:
case Ast_InlineRangeStmt:
case Ast_UnrollRangeStmt:
case Ast_SwitchStmt:
case Ast_TypeSwitchStmt:
// TODO(bill): Is this a correct checking system?
@@ -1903,7 +1903,7 @@ void check_stmt_internal(CheckerContext *ctx, Ast *node, u32 flags) {
check_close_scope(ctx);
case_end;
case_ast_node(irs, InlineRangeStmt, node);
case_ast_node(irs, UnrollRangeStmt, node);
check_inline_range_stmt(ctx, node, mod_flags);
case_end;