aboutsummaryrefslogtreecommitdiff
path: root/src/ir_print.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir_print.cpp')
-rw-r--r--src/ir_print.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/ir_print.cpp b/src/ir_print.cpp
index 3da15607c..40325ae9f 100644
--- a/src/ir_print.cpp
+++ b/src/ir_print.cpp
@@ -1888,17 +1888,19 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) {
TokenPos pos = e->token.pos;
irDebugInfo **lookup_di = map_get(&m->debug_info, hash_entity(e));
- GB_ASSERT_NOT_NULL(*lookup_di);
- irDebugInfo* local_var_di = *lookup_di;
+ if (lookup_di != nullptr) {
+ GB_ASSERT_NOT_NULL(*lookup_di);
+ irDebugInfo* local_var_di = *lookup_di;
- ir_write_str_lit(f, "call void @llvm.dbg.declare(");
- ir_write_str_lit(f, "metadata ");
- ir_print_type(f, m, vt);
- ir_write_byte(f, ' ');
- ir_print_value(f, m, dd->value, vt);
- ir_fprintf(f, ", metadata !%d", local_var_di->id);
- ir_write_str_lit(f, ", metadata !DIExpression())");
- ir_print_debug_location(f, m, value);
+ ir_write_str_lit(f, "call void @llvm.dbg.declare(");
+ ir_write_str_lit(f, "metadata ");
+ ir_print_type(f, m, vt);
+ ir_write_byte(f, ' ');
+ ir_print_value(f, m, dd->value, vt);
+ ir_fprintf(f, ", metadata !%d", local_var_di->id);
+ ir_write_str_lit(f, ", metadata !DIExpression())");
+ ir_print_debug_location(f, m, value);
+ }
break;
}
}