diff options
Diffstat (limited to 'src/tools/wasm-link.cc')
-rw-r--r-- | src/tools/wasm-link.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tools/wasm-link.cc b/src/tools/wasm-link.cc index b69f2b5a..240813c1 100644 --- a/src/tools/wasm-link.cc +++ b/src/tools/wasm-link.cc @@ -523,9 +523,11 @@ static void write_names_section(Context* ctx) { stream->WriteU8Enum(NameSectionSubsection::Function, "subsection code"); WRITE_UNKNOWN_SIZE(stream); write_u32_leb128(stream, total_count, "element count"); + + // Write import names for (const std::unique_ptr<LinkerInputBinary>& binary: ctx->inputs) { for (size_t i = 0; i < binary->debug_names.size(); i++) { - if (binary->debug_names[i].empty()) + if (binary->debug_names[i].empty() || !binary->IsFunctionImport(i)) continue; if (binary->IsInactiveFunctionImport(i)) continue; @@ -534,6 +536,16 @@ static void write_names_section(Context* ctx) { } } + // Write non-import names + for (const std::unique_ptr<LinkerInputBinary>& binary: ctx->inputs) { + for (size_t i = 0; i < binary->debug_names.size(); i++) { + if (binary->debug_names[i].empty() || binary->IsFunctionImport(i)) + continue; + write_u32_leb128(stream, binary->RelocateFuncIndex(i), "function index"); + write_string(stream, binary->debug_names[i], "function name"); + } + } + FIXUP_SIZE(stream); FIXUP_SIZE(stream); |