aboutsummaryrefslogtreecommitdiff
path: root/src/eval.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.cpp')
-rw-r--r--src/eval.cpp42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/eval.cpp b/src/eval.cpp
index 79d3079adc..1ccf0225f4 100644
--- a/src/eval.cpp
+++ b/src/eval.cpp
@@ -75,7 +75,7 @@ static bool eval_block(EvalFn *ef, AstNode *node, ConstExprValue *out) {
my_scope->block_context = node->block_context;
ef->scope_stack.append(my_scope);
- for (int i = 0; i < node->data.block.statements.length; i += 1) {
+ for (size_t i = 0; i < node->data.block.statements.length; i += 1) {
AstNode *child = node->data.block.statements.at(i);
memset(out, 0, sizeof(ConstExprValue));
if (eval_expr(ef, child, out)) return true;
@@ -413,10 +413,10 @@ static bool eval_bin_op_expr(EvalFn *ef, AstNode *node, ConstExprValue *out_val)
}
static EvalVar *find_var(EvalFn *ef, Buf *name) {
- int scope_index = ef->scope_stack.length - 1;
- while (scope_index >= 0) {
+ size_t scope_index = ef->scope_stack.length - 1;
+ while (scope_index != SIZE_MAX) {
EvalScope *scope = ef->scope_stack.at(scope_index);
- for (int var_i = 0; var_i < scope->vars.length; var_i += 1) {
+ for (size_t var_i = 0; var_i < scope->vars.length; var_i += 1) {
EvalVar *var = &scope->vars.at(var_i);
if (buf_eql_buf(var->name, name)) {
return var;
@@ -466,18 +466,18 @@ static bool eval_container_init_expr(EvalFn *ef, AstNode *node, ConstExprValue *
!container_type->data.structure.is_slice &&
kind == ContainerInitKindStruct)
{
- int expr_field_count = container_init_expr->entries.length;
- int actual_field_count = container_type->data.structure.src_field_count;
+ size_t expr_field_count = container_init_expr->entries.length;
+ size_t actual_field_count = container_type->data.structure.src_field_count;
assert(expr_field_count == actual_field_count);
out_val->data.x_struct.fields = allocate<ConstExprValue*>(actual_field_count);
- for (int i = 0; i < expr_field_count; i += 1) {
+ for (size_t i = 0; i < expr_field_count; i += 1) {
AstNode *val_field_node = container_init_expr->entries.at(i);
assert(val_field_node->type == NodeTypeStructValueField);
TypeStructField *type_field = val_field_node->data.struct_val_field.type_struct_field;
- int field_index = type_field->src_index;
+ size_t field_index = type_field->src_index;
ConstExprValue src_field_val = {0};
if (eval_expr(ef, val_field_node->data.struct_val_field.expr, &src_field_val)) return true;
@@ -496,12 +496,12 @@ static bool eval_container_init_expr(EvalFn *ef, AstNode *node, ConstExprValue *
kind == ContainerInitKindArray)
{
- int elem_count = container_init_expr->entries.length;
+ size_t elem_count = container_init_expr->entries.length;
out_val->ok = true;
out_val->data.x_array.fields = allocate<ConstExprValue*>(elem_count);
- for (int i = 0; i < elem_count; i += 1) {
+ for (size_t i = 0; i < elem_count; i += 1) {
AstNode *elem_node = container_init_expr->entries.at(i);
ConstExprValue *elem_val = allocate<ConstExprValue>(1);
@@ -698,7 +698,7 @@ void eval_const_expr_implicit_cast(CastOp cast_op,
static bool int_type_depends_on_compile_var(CodeGen *g, TypeTableEntry *int_type) {
assert(int_type->id == TypeTableEntryIdInt);
- for (int i = 0; i < CIntTypeCount; i += 1) {
+ for (size_t i = 0; i < CIntTypeCount; i += 1) {
if (int_type == g->builtin_types.entry_c_int[i]) {
return true;
}
@@ -918,9 +918,9 @@ static bool eval_fn_call_expr(EvalFn *ef, AstNode *node, ConstExprValue *out_val
fn_table_entry = fn_val.data.x_fn;
}
- int param_count = node->data.fn_call_expr.params.length;
+ size_t param_count = node->data.fn_call_expr.params.length;
ConstExprValue *args = allocate<ConstExprValue>(param_count);
- for (int call_i = 0; call_i < param_count; call_i += 1) {
+ for (size_t call_i = 0; call_i < param_count; call_i += 1) {
AstNode *param_expr_node = node->data.fn_call_expr.params.at(call_i);
ConstExprValue *param_val = &args[call_i];
if (eval_expr(ef, param_expr_node, param_val)) return true;
@@ -1340,8 +1340,8 @@ static bool eval_fn_args(EvalFnRoot *efr, FnTableEntry *fn, ConstExprValue *args
root_scope->block_context = fn->fn_def_node->data.fn_def.body->block_context;
ef.scope_stack.append(root_scope);
- int param_count = acting_proto_node->data.fn_proto.params.length;
- for (int proto_i = 0; proto_i < param_count; proto_i += 1) {
+ size_t param_count = acting_proto_node->data.fn_proto.params.length;
+ for (size_t proto_i = 0; proto_i < param_count; proto_i += 1) {
AstNode *decl_param_node = acting_proto_node->data.fn_proto.params.at(proto_i);
assert(decl_param_node->type == NodeTypeParamDecl);
@@ -1358,7 +1358,7 @@ static bool eval_fn_args(EvalFnRoot *efr, FnTableEntry *fn, ConstExprValue *args
}
bool eval_fn(CodeGen *g, AstNode *node, FnTableEntry *fn, ConstExprValue *out_val,
- int branch_quota, AstNode *struct_node)
+ size_t branch_quota, AstNode *struct_node)
{
assert(node->type == NodeTypeFnCallExpr);
@@ -1375,17 +1375,17 @@ bool eval_fn(CodeGen *g, AstNode *node, FnTableEntry *fn, ConstExprValue *out_va
acting_proto_node = fn->proto_node;
}
- int call_param_count = node->data.fn_call_expr.params.length;
- int proto_param_count = acting_proto_node->data.fn_proto.params.length;
+ size_t call_param_count = node->data.fn_call_expr.params.length;
+ size_t proto_param_count = acting_proto_node->data.fn_proto.params.length;
ConstExprValue *args = allocate<ConstExprValue>(proto_param_count);
- int next_arg_index = 0;
+ size_t next_arg_index = 0;
if (struct_node) {
ConstExprValue *struct_val = &get_resolved_expr(struct_node)->const_val;
assert(struct_val->ok);
args[next_arg_index] = *struct_val;
next_arg_index += 1;
}
- for (int call_index = 0; call_index < call_param_count; call_index += 1) {
+ for (size_t call_index = 0; call_index < call_param_count; call_index += 1) {
AstNode *call_param_node = node->data.fn_call_expr.params.at(call_index);
ConstExprValue *src_const_val = &get_resolved_expr(call_param_node)->const_val;
assert(src_const_val->ok);
@@ -1396,7 +1396,7 @@ bool eval_fn(CodeGen *g, AstNode *node, FnTableEntry *fn, ConstExprValue *out_va
if (efr.exceeded_quota_node) {
ErrorMsg *msg = add_node_error(g, fn->fn_def_node,
- buf_sprintf("function evaluation exceeded %d branches", efr.branch_quota));
+ buf_sprintf("function evaluation exceeded %zu branches", efr.branch_quota));
add_error_note(g, msg, efr.call_node, buf_sprintf("called from here"));
add_error_note(g, msg, efr.exceeded_quota_node, buf_sprintf("quota exceeded here"));