aboutsummaryrefslogtreecommitdiff
path: root/src/tilde.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-08-07 14:40:42 +0100
committergingerBill <bill@gingerbill.org>2023-08-07 14:40:42 +0100
commit0c1b39d881a5f91534bf0f33fb945ab57ef293d8 (patch)
tree5b16e10ddad44dccdb8f827294e9f3c73b68dba1 /src/tilde.cpp
parent67ffae7e32301a817d73ba68b5e0d6a626c2b4de (diff)
Mock out map get/set functionality
Diffstat (limited to 'src/tilde.cpp')
-rw-r--r--src/tilde.cpp18
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) {