diff options
| author | lachsinc <lachlansinclair@gmail.com> | 2018-09-18 21:28:28 +1000 |
|---|---|---|
| committer | lachsinc <lachlansinclair@gmail.com> | 2018-09-18 21:28:28 +1000 |
| commit | 7dcad45e0d9b891dd17c7caf8de28d8345c41a37 (patch) | |
| tree | 46f98038fa75dfc722c4678e270583186ad0cad6 /src/ir_print.cpp | |
| parent | 3772ea6ae145a17facc8007822a1d7eb97c4dd45 (diff) | |
Add proper procedure type support (return types and param proc signature)
Diffstat (limited to 'src/ir_print.cpp')
| -rw-r--r-- | src/ir_print.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/ir_print.cpp b/src/ir_print.cpp index b7a4f9e65..cb635cab8 100644 --- a/src/ir_print.cpp +++ b/src/ir_print.cpp @@ -1982,16 +1982,21 @@ void print_llvm_ir(irGen *ir) { di->Proc.pos.line, di->Proc.pos.line, // NOTE(lachsinc): Assume scopeLine always same as line. m->debug_compile_unit->id); - if (di->Proc.return_types.count == 0) { - ir_fprintf(f, "null})"); - } else { - for_array(return_type_index, di->Proc.return_types) { - ir_fprintf(f, "%s!%d", - return_type_index > 0 ? ", " : "", - di->Proc.return_types[return_type_index]->id); + if (di->Proc.types.count > 0) { + for_array(type_index, di->Proc.types) { + if (type_index > 0) { + ir_write_byte(f, ','); + } + if (di->Proc.types[type_index]) { + ir_fprintf(f, "!%d", di->Proc.types[type_index]->id); + } else { + ir_write_str_lit(f, "null"); + } } - ir_write_str_lit(f, "})"); + } else { + ir_write_str_lit(f, "null"); } + ir_write_str_lit(f, "})"); // !DISubroutineTypes close ir_write_byte(f, ')'); break; case irDebugInfo_LocalVariable: { |