From 4ba579bc25ab2bbde370231d090588c237552c76 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 15 Dec 2019 11:41:21 +0000 Subject: Also allow #no_bounds_check on an expression #499 --- src/check_stmt.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src/check_stmt.cpp') diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index a2c158638..7d5648018 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -335,27 +335,26 @@ Type *check_assignment_variable(CheckerContext *ctx, Operand *lhs, Operand *rhs) void check_stmt_internal(CheckerContext *ctx, Ast *node, u32 flags); void check_stmt(CheckerContext *ctx, Ast *node, u32 flags) { - u32 prev_stmt_state_flags = ctx->stmt_state_flags; + u32 prev_state_flags = ctx->state_flags; - if (node->stmt_state_flags != 0) { - u32 in = node->stmt_state_flags; - u32 out = ctx->stmt_state_flags; + if (node->state_flags != 0) { + u32 in = node->state_flags; + u32 out = ctx->state_flags; - if (in & StmtStateFlag_no_bounds_check) { - out |= StmtStateFlag_no_bounds_check; - out &= ~StmtStateFlag_bounds_check; - } else { - // if (in & StmtStateFlag_bounds_check) { - out |= StmtStateFlag_bounds_check; - out &= ~StmtStateFlag_no_bounds_check; + if (in & StateFlag_no_bounds_check) { + out |= StateFlag_no_bounds_check; + out &= ~StateFlag_bounds_check; + } else if (in & StateFlag_bounds_check) { + out |= StateFlag_bounds_check; + out &= ~StateFlag_no_bounds_check; } - ctx->stmt_state_flags = out; + ctx->state_flags = out; } check_stmt_internal(ctx, node, flags); - ctx->stmt_state_flags = prev_stmt_state_flags; + ctx->state_flags = prev_state_flags; } -- cgit v1.2.3