diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-01-06 15:47:07 +0000 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-01-06 15:47:07 +0000 |
| commit | b1e35b6da3e335376339965ad2e26d7e275de3c5 (patch) | |
| tree | f9be51b2214a51d2860357fa68e79ff2a1be57f3 /src/checker | |
| parent | fc1af0a04bfce7b64e1f776951016ea975e4cd21 (diff) | |
Fix array pointer as iterators; Remove stack allocations in `startup_runtime`v0.0.5d
Diffstat (limited to 'src/checker')
| -rw-r--r-- | src/checker/checker.c | 18 | ||||
| -rw-r--r-- | src/checker/types.c | 21 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/checker/checker.c b/src/checker/checker.c index 3a19ec69c..cef1a606d 100644 --- a/src/checker/checker.c +++ b/src/checker/checker.c @@ -1045,6 +1045,24 @@ void init_preload(Checker *c) { t_type_info_union = record->fields[15]->type; t_type_info_raw_union = record->fields[16]->type; t_type_info_enum = record->fields[17]->type; + + t_type_info_named_ptr = make_type_pointer(heap_allocator(), t_type_info_named); + t_type_info_integer_ptr = make_type_pointer(heap_allocator(), t_type_info_integer); + t_type_info_float_ptr = make_type_pointer(heap_allocator(), t_type_info_float); + t_type_info_any_ptr = make_type_pointer(heap_allocator(), t_type_info_any); + t_type_info_string_ptr = make_type_pointer(heap_allocator(), t_type_info_string); + t_type_info_boolean_ptr = make_type_pointer(heap_allocator(), t_type_info_boolean); + t_type_info_pointer_ptr = make_type_pointer(heap_allocator(), t_type_info_pointer); + t_type_info_maybe_ptr = make_type_pointer(heap_allocator(), t_type_info_maybe); + t_type_info_procedure_ptr = make_type_pointer(heap_allocator(), t_type_info_procedure); + t_type_info_array_ptr = make_type_pointer(heap_allocator(), t_type_info_array); + t_type_info_slice_ptr = make_type_pointer(heap_allocator(), t_type_info_slice); + t_type_info_vector_ptr = make_type_pointer(heap_allocator(), t_type_info_vector); + t_type_info_tuple_ptr = make_type_pointer(heap_allocator(), t_type_info_tuple); + t_type_info_struct_ptr = make_type_pointer(heap_allocator(), t_type_info_struct); + t_type_info_union_ptr = make_type_pointer(heap_allocator(), t_type_info_union); + t_type_info_raw_union_ptr = make_type_pointer(heap_allocator(), t_type_info_raw_union); + t_type_info_enum_ptr = make_type_pointer(heap_allocator(), t_type_info_enum); } if (t_allocator == NULL) { diff --git a/src/checker/types.c b/src/checker/types.c index 74c2fa981..779924cd4 100644 --- a/src/checker/types.c +++ b/src/checker/types.c @@ -277,6 +277,27 @@ gb_global Type *t_type_info_union = NULL; gb_global Type *t_type_info_raw_union = NULL; gb_global Type *t_type_info_enum = NULL; + +gb_global Type *t_type_info_named_ptr = NULL; +gb_global Type *t_type_info_integer_ptr = NULL; +gb_global Type *t_type_info_float_ptr = NULL; +gb_global Type *t_type_info_any_ptr = NULL; +gb_global Type *t_type_info_string_ptr = NULL; +gb_global Type *t_type_info_boolean_ptr = NULL; +gb_global Type *t_type_info_pointer_ptr = NULL; +gb_global Type *t_type_info_maybe_ptr = NULL; +gb_global Type *t_type_info_procedure_ptr = NULL; +gb_global Type *t_type_info_array_ptr = NULL; +gb_global Type *t_type_info_slice_ptr = NULL; +gb_global Type *t_type_info_vector_ptr = NULL; +gb_global Type *t_type_info_tuple_ptr = NULL; +gb_global Type *t_type_info_struct_ptr = NULL; +gb_global Type *t_type_info_union_ptr = NULL; +gb_global Type *t_type_info_raw_union_ptr = NULL; +gb_global Type *t_type_info_enum_ptr = NULL; + + + gb_global Type *t_allocator = NULL; gb_global Type *t_allocator_ptr = NULL; gb_global Type *t_context = NULL; |