diff options
Diffstat (limited to 'src/tilde.cpp')
| -rw-r--r-- | src/tilde.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/tilde.cpp b/src/tilde.cpp index 0cbc975c4..5562d2d48 100644 --- a/src/tilde.cpp +++ b/src/tilde.cpp @@ -189,6 +189,19 @@ gb_internal cgAddr cg_addr(cgValue const &value) { return addr; } +gb_internal cgAddr cg_addr_map(cgValue addr, cgValue map_key, Type *map_type, Type *map_result) { + GB_ASSERT(is_type_pointer(addr.type)); + Type *mt = type_deref(addr.type); + GB_ASSERT(is_type_map(mt)); + + cgAddr v = {cgAddr_Map, addr}; + v.map.key = map_key; + v.map.type = map_type; + v.map.result = map_result; + return v; +} + + gb_internal void cg_set_debug_pos_from_node(cgProcedure *p, Ast *node) { if (node) { TokenPos pos = ast_token(node).pos; @@ -435,6 +448,8 @@ gb_internal cgModule *cg_module_create(Checker *c) { map_init(&m->hasher_procs); map_init(&m->map_get_procs); map_init(&m->map_set_procs); + map_init(&m->map_info_map); + map_init(&m->map_cell_info_map); array_init(&m->single_threaded_procedure_queue, heap_allocator()); @@ -461,6 +476,8 @@ gb_internal void cg_module_destroy(cgModule *m) { map_destroy(&m->hasher_procs); map_destroy(&m->map_get_procs); map_destroy(&m->map_set_procs); + map_destroy(&m->map_info_map); + map_destroy(&m->map_cell_info_map); array_free(&m->single_threaded_procedure_queue); @@ -784,7 +801,6 @@ gb_internal bool cg_generate_code(Checker *c, LinkerData *linker_data) { } - TB_DebugFormat debug_format = TB_DEBUGFMT_NONE; if (build_context.ODIN_DEBUG) { switch (build_context.metrics.os) { |