| ... | @@ -22601,40 +22601,40 @@ static Error ir_make_type_info_decls(IrAnalyze *ira, IrInstruction *source_instr | ... | @@ -22601,40 +22601,40 @@ static Error ir_make_type_info_decls(IrAnalyze *ira, IrInstruction *source_instr |
| 22601 | // is_var_args: bool | 22601 | // is_var_args: bool |
| 22602 | ensure_field_index(fn_decl_val->type, "is_var_args", 2); | 22602 | ensure_field_index(fn_decl_val->type, "is_var_args", 2); |
| 22603 | bool is_varargs = fn_node->is_var_args; | 22603 | bool is_varargs = fn_node->is_var_args; |
| 22604 | fn_decl_fields[3]->special = ConstValSpecialStatic; | 22604 | fn_decl_fields[2]->special = ConstValSpecialStatic; |
| 22605 | fn_decl_fields[3]->type = ira->codegen->builtin_types.entry_bool; | 22605 | fn_decl_fields[2]->type = ira->codegen->builtin_types.entry_bool; |
| 22606 | fn_decl_fields[3]->data.x_bool = is_varargs; | 22606 | fn_decl_fields[2]->data.x_bool = is_varargs; |
| 22607 | // is_extern: bool | 22607 | // is_extern: bool |
| 22608 | ensure_field_index(fn_decl_val->type, "is_extern", 3); | 22608 | ensure_field_index(fn_decl_val->type, "is_extern", 3); |
| 22609 | fn_decl_fields[4]->special = ConstValSpecialStatic; | 22609 | fn_decl_fields[3]->special = ConstValSpecialStatic; |
| 22610 | fn_decl_fields[4]->type = ira->codegen->builtin_types.entry_bool; | 22610 | fn_decl_fields[3]->type = ira->codegen->builtin_types.entry_bool; |
| 22611 | fn_decl_fields[4]->data.x_bool = fn_node->is_extern; | 22611 | fn_decl_fields[3]->data.x_bool = fn_node->is_extern; |
| 22612 | // is_export: bool | 22612 | // is_export: bool |
| 22613 | ensure_field_index(fn_decl_val->type, "is_export", 4); | 22613 | ensure_field_index(fn_decl_val->type, "is_export", 4); |
| 22614 | fn_decl_fields[5]->special = ConstValSpecialStatic; | 22614 | fn_decl_fields[4]->special = ConstValSpecialStatic; |
| 22615 | fn_decl_fields[5]->type = ira->codegen->builtin_types.entry_bool; | 22615 | fn_decl_fields[4]->type = ira->codegen->builtin_types.entry_bool; |
| 22616 | fn_decl_fields[5]->data.x_bool = fn_node->is_export; | 22616 | fn_decl_fields[4]->data.x_bool = fn_node->is_export; |
| 22617 | // lib_name: ?[]const u8 | 22617 | // lib_name: ?[]const u8 |
| 22618 | ensure_field_index(fn_decl_val->type, "lib_name", 5); | 22618 | ensure_field_index(fn_decl_val->type, "lib_name", 5); |
| 22619 | fn_decl_fields[6]->special = ConstValSpecialStatic; | 22619 | fn_decl_fields[5]->special = ConstValSpecialStatic; |
| 22620 | ZigType *u8_ptr = get_pointer_to_type_extra( | 22620 | ZigType *u8_ptr = get_pointer_to_type_extra( |
| 22621 | ira->codegen, ira->codegen->builtin_types.entry_u8, | 22621 | ira->codegen, ira->codegen->builtin_types.entry_u8, |
| 22622 | true, false, PtrLenUnknown, | 22622 | true, false, PtrLenUnknown, |
| 22623 | 0, 0, 0, false); | 22623 | 0, 0, 0, false); |
| 22624 | fn_decl_fields[6]->type = get_optional_type(ira->codegen, get_slice_type(ira->codegen, u8_ptr)); | 22624 | fn_decl_fields[5]->type = get_optional_type(ira->codegen, get_slice_type(ira->codegen, u8_ptr)); |
| 22625 | if (fn_node->is_extern && fn_node->lib_name != nullptr && buf_len(fn_node->lib_name) > 0) { | 22625 | if (fn_node->is_extern && fn_node->lib_name != nullptr && buf_len(fn_node->lib_name) > 0) { |
| 22626 | fn_decl_fields[6]->data.x_optional = create_const_vals(1); | 22626 | fn_decl_fields[5]->data.x_optional = create_const_vals(1); |
| 22627 | ZigValue *lib_name = create_const_str_lit(ira->codegen, fn_node->lib_name)->data.x_ptr.data.ref.pointee; | 22627 | ZigValue *lib_name = create_const_str_lit(ira->codegen, fn_node->lib_name)->data.x_ptr.data.ref.pointee; |
| 22628 | init_const_slice(ira->codegen, fn_decl_fields[6]->data.x_optional, lib_name, 0, | 22628 | init_const_slice(ira->codegen, fn_decl_fields[5]->data.x_optional, lib_name, 0, |
| 22629 | buf_len(fn_node->lib_name), true); | 22629 | buf_len(fn_node->lib_name), true); |
| 22630 | } else { | 22630 | } else { |
| 22631 | fn_decl_fields[6]->data.x_optional = nullptr; | 22631 | fn_decl_fields[5]->data.x_optional = nullptr; |
| 22632 | } | 22632 | } |
| 22633 | // return_type: type | 22633 | // return_type: type |
| 22634 | ensure_field_index(fn_decl_val->type, "return_type", 6); | 22634 | ensure_field_index(fn_decl_val->type, "return_type", 6); |
| 22635 | fn_decl_fields[7]->special = ConstValSpecialStatic; | 22635 | fn_decl_fields[6]->special = ConstValSpecialStatic; |
| 22636 | fn_decl_fields[7]->type = ira->codegen->builtin_types.entry_type; | 22636 | fn_decl_fields[6]->type = ira->codegen->builtin_types.entry_type; |
| 22637 | fn_decl_fields[7]->data.x_type = fn_entry->type_entry->data.fn.fn_type_id.return_type; | 22637 | fn_decl_fields[6]->data.x_type = fn_entry->type_entry->data.fn.fn_type_id.return_type; |
| 22638 | // arg_names: [][] const u8 | 22638 | // arg_names: [][] const u8 |
| 22639 | ensure_field_index(fn_decl_val->type, "arg_names", 7); | 22639 | ensure_field_index(fn_decl_val->type, "arg_names", 7); |
| 22640 | size_t fn_arg_count = fn_entry->variable_list.length; | 22640 | size_t fn_arg_count = fn_entry->variable_list.length; |
| ... | @@ -22645,7 +22645,7 @@ static Error ir_make_type_info_decls(IrAnalyze *ira, IrInstruction *source_instr | ... | @@ -22645,7 +22645,7 @@ static Error ir_make_type_info_decls(IrAnalyze *ira, IrInstruction *source_instr |
| 22645 | fn_arg_name_array->data.x_array.special = ConstArraySpecialNone; | 22645 | fn_arg_name_array->data.x_array.special = ConstArraySpecialNone; |
| 22646 | fn_arg_name_array->data.x_array.data.s_none.elements = create_const_vals(fn_arg_count); | 22646 | fn_arg_name_array->data.x_array.data.s_none.elements = create_const_vals(fn_arg_count); |
| 22647 | | 22647 | |
| 22648 | init_const_slice(ira->codegen, fn_decl_fields[8], fn_arg_name_array, 0, fn_arg_count, false); | 22648 | init_const_slice(ira->codegen, fn_decl_fields[7], fn_arg_name_array, 0, fn_arg_count, false); |
| 22649 | | 22649 | |
| 22650 | for (size_t fn_arg_index = 0; fn_arg_index < fn_arg_count; fn_arg_index++) { | 22650 | for (size_t fn_arg_index = 0; fn_arg_index < fn_arg_count; fn_arg_index++) { |
| 22651 | ZigVar *arg_var = fn_entry->variable_list.at(fn_arg_index); | 22651 | ZigVar *arg_var = fn_entry->variable_list.at(fn_arg_index); |