diff options
| author | gingerBill <bill@gingerbill.org> | 2021-03-23 20:45:39 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-03-23 20:45:39 +0000 |
| commit | f1e13bdddbfda3297e381c9350dc7e6188951eac (patch) | |
| tree | 8af3b0b09760dd2c50ed21e8ec7be29af2df306b /src | |
| parent | 331167e91f6cd414f71cc178c30f09de59603554 (diff) | |
Prefix named types with package name in debug types
Diffstat (limited to 'src')
| -rw-r--r-- | src/llvm_backend.cpp | 3 | ||||
| -rw-r--r-- | src/string.cpp | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 08b32ec03..c703d7b16 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2010,6 +2010,9 @@ void lb_debug_complete_types(lbModule *m) { String name = str_lit("<anonymous-struct>"); if (t->kind == Type_Named) { name = t->Named.name; + if (t->Named.type_name && t->Named.type_name->pkg && t->Named.type_name->pkg->name.len != 0) { + name = concatenate3_strings(temporary_allocator(), t->Named.type_name->pkg->name, str_lit("."), t->Named.name); + } LLVMMetadataRef file = nullptr; unsigned line = 0; diff --git a/src/string.cpp b/src/string.cpp index 408f53d72..4226f0751 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -343,6 +343,15 @@ String concatenate_strings(gbAllocator a, String const &x, String const &y) { data[len] = 0; return make_string(data, len); } +String concatenate3_strings(gbAllocator a, String const &x, String const &y, String const &z) { + isize len = x.len+y.len+z.len; + u8 *data = gb_alloc_array(a, u8, len+1); + gb_memmove(data, x.text, x.len); + gb_memmove(data+x.len, y.text, y.len); + gb_memmove(data+x.len+y.len, z.text, z.len); + data[len] = 0; + return make_string(data, len); +} String string_join_and_quote(gbAllocator a, Array<String> strings) { if (!strings.count) { |