[llvm] symblize offset (PR #191068)

Derek Schuff via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 8 15:46:45 PDT 2026


https://github.com/dschuff created https://github.com/llvm/llvm-project/pull/191068

- **SymbolizableOjbectFile: Convert Wasm file offset to section offset for DWARF**
- **use assembly for tests**


>From bfcd2f05f3b023517408ec710fe2a9f8340a46e7 Mon Sep 17 00:00:00 2001
From: Derek Schuff <dschuff at chromium.org>
Date: Wed, 8 Apr 2026 19:18:17 +0000
Subject: [PATCH 1/2] SymbolizableOjbectFile: Convert Wasm file offset to
 section offset for DWARF

Wasm's object and linking format lacks virtual addresses like ELF et al.
As a result, linked files generally use file offsets as "addresses", whereas
objects and DWARF sections use code section offsets.
This has led to incorrect interpretation of addresses in llvm-objdump
and llvm-symbolizer for linked files.

This change to SerializableObjectFile checks the input ModuleOffset, and
if it falls within a wasm code section, adjusts it to a section offset
before querying the DwarfContext. (For object files, Sec.getAddress() is
0 so it works for object files too). It extends the existing DWARF test
for llvm-symbolizer to include a linked file, and also adds an equivalent
for objdump.

Fixes #129523
---
 .../Symbolize/SymbolizableObjectFile.h        |   7 ++
 .../Symbolize/SymbolizableObjectFile.cpp      |  26 +++-
 .../tools/llvm-objdump/wasm/linked-dwarf.yaml | 114 ++++++++++++++++++
 .../llvm-symbolizer/Inputs/wasm-linked.wasm   | Bin 0 -> 923 bytes
 .../tools/llvm-symbolizer/wasm-linked.test    |  14 +++
 5 files changed, 158 insertions(+), 3 deletions(-)
 create mode 100644 llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml
 create mode 100755 llvm/test/tools/llvm-symbolizer/Inputs/wasm-linked.wasm
 create mode 100644 llvm/test/tools/llvm-symbolizer/wasm-linked.test

diff --git a/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h b/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h
index 5ef513f570b03..c31c3ac353fb0 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h
@@ -74,6 +74,13 @@ class SymbolizableObjectFile : public SymbolizableModule {
   std::unique_ptr<DIContext> DebugInfoContext;
   bool UntagAddresses;
 
+  /// WebAssembly linked files use file offsets for code symbol addresses, but
+  /// DWARF uses section-relative offsets. This helper method converts a module
+  /// file offset into its corresponding section-relative offset, but only if
+  /// the address falls within a Wasm code section.
+  object::SectionedAddress
+  getWasmCodeDwarfOffset(object::SectionedAddress ModuleOffset) const;
+
   struct SymbolDesc {
     uint64_t Addr;
     // If size is 0, assume that symbol occupies the whole memory range up to
diff --git a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
index 29fd4d9fda7ad..39c3c1c96f83d 100644
--- a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
+++ b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
@@ -269,6 +269,23 @@ bool SymbolizableObjectFile::shouldOverrideWithSymbolTable(
          isa<DWARFContext>(DebugInfoContext.get());
 }
 
+object::SectionedAddress SymbolizableObjectFile::getWasmCodeDwarfOffset(
+    object::SectionedAddress ModuleOffset) const {
+  if (!Module->isWasm())
+    return ModuleOffset;
+  if (ModuleOffset.SectionIndex == object::SectionedAddress::UndefSection)
+    ModuleOffset.SectionIndex =
+        getModuleSectionIndexForAddress(ModuleOffset.Address);
+  for (const SectionRef &Sec : Module->sections()) {
+    if (Sec.getIndex() == ModuleOffset.SectionIndex) {
+      if (Sec.isText())
+        ModuleOffset.Address -= Sec.getAddress();
+      break;
+    }
+  }
+  return ModuleOffset;
+}
+
 DILineInfo
 SymbolizableObjectFile::symbolizeCode(object::SectionedAddress ModuleOffset,
                                       DILineInfoSpecifier LineInfoSpecifier,
@@ -277,8 +294,9 @@ SymbolizableObjectFile::symbolizeCode(object::SectionedAddress ModuleOffset,
     ModuleOffset.SectionIndex =
         getModuleSectionIndexForAddress(ModuleOffset.Address);
   DILineInfo LineInfo;
+  object::SectionedAddress DWARFOffset = getWasmCodeDwarfOffset(ModuleOffset);
   std::optional<DILineInfo> DBGLineInfo =
-      DebugInfoContext->getLineInfoForAddress(ModuleOffset, LineInfoSpecifier);
+      DebugInfoContext->getLineInfoForAddress(DWARFOffset, LineInfoSpecifier);
   if (DBGLineInfo)
     LineInfo = *DBGLineInfo;
 
@@ -305,8 +323,9 @@ DIInliningInfo SymbolizableObjectFile::symbolizeInlinedCode(
   if (ModuleOffset.SectionIndex == object::SectionedAddress::UndefSection)
     ModuleOffset.SectionIndex =
         getModuleSectionIndexForAddress(ModuleOffset.Address);
+  object::SectionedAddress DWARFOffset = getWasmCodeDwarfOffset(ModuleOffset);
   DIInliningInfo InlinedContext = DebugInfoContext->getInliningInfoForAddress(
-      ModuleOffset, LineInfoSpecifier);
+      DWARFOffset, LineInfoSpecifier);
 
   // Make sure there is at least one frame in context.
   bool EmptyFrameAdded = false;
@@ -358,7 +377,8 @@ std::vector<DILocal> SymbolizableObjectFile::symbolizeFrame(
   if (ModuleOffset.SectionIndex == object::SectionedAddress::UndefSection)
     ModuleOffset.SectionIndex =
         getModuleSectionIndexForAddress(ModuleOffset.Address);
-  return DebugInfoContext->getLocalsForAddress(ModuleOffset);
+  object::SectionedAddress DWARFOffset = getWasmCodeDwarfOffset(ModuleOffset);
+  return DebugInfoContext->getLocalsForAddress(DWARFOffset);
 }
 
 std::vector<object::SectionedAddress>
diff --git a/llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml b/llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml
new file mode 100644
index 0000000000000..33b0dc3f33b55
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml
@@ -0,0 +1,114 @@
+# RUN: yaml2obj %s -o %t.wasm
+# RUN: llvm-objdump -d --line-numbers %t.wasm | FileCheck %s
+
+# CHECK:      {{.*}} <__original_main>:
+# CHECK-NEXT:        .local i32
+# CHECK-NEXT: ; __original_main():
+# CHECK-NEXT: ; {{.*}}test.c:1
+# CHECK-NEXT:       {{.*}}: 23 80 80 80 80 00     global.get  0
+
+--- !WASM
+FileHeader:
+  Version:         0x1
+Sections:
+  - Type:            TYPE
+    Signatures:
+      - Index:           0
+        ParamTypes:      []
+        ReturnTypes:
+          - I32
+      - Index:           1
+        ParamTypes:
+          - I32
+          - I32
+        ReturnTypes:
+          - I32
+  - Type:            FUNCTION
+    FunctionTypes:   [ 0, 1 ]
+  - Type:            TABLE
+    Tables:
+      - Index:           0
+        ElemType:        FUNCREF
+        Limits:
+          Flags:           [ HAS_MAX ]
+          Minimum:         0x1
+          Maximum:         0x1
+  - Type:            MEMORY
+    Memories:
+      - Minimum:         0x1
+  - Type:            GLOBAL
+    Globals:
+      - Index:           0
+        Type:            I32
+        Mutable:         true
+        InitExpr:
+          Opcode:          I32_CONST
+          Value:           65536
+  - Type:            EXPORT
+    Exports:
+      - Name:            memory
+        Kind:            MEMORY
+        Index:           0
+      - Name:            main
+        Kind:            FUNCTION
+        Index:           1
+  - Type:            CODE
+    Functions:
+      - Index:           0
+        Locals:
+          - Type:            I32
+            Count:           1
+        Body:            23808080800041106B21002000410036020C412A0F0B
+      - Index:           1
+        Locals:          []
+        Body:            1080808080000F0B
+  - Type:            CUSTOM
+    Name:            .debug_abbrev
+    Payload:         011101250E1305030E10171B0E110112060000022E00110112064018030E3A0B3B0B49133F190000032400030E3E0B0B0B000000
+  - Type:            CUSTOM
+    Name:            .debug_info
+    Payload:         4200000004000000000004012F0000001D00280000000000000004000000020000001900000002020000001900000004ED00009F2300000001013E0000000300000000050400
+  - Type:            CUSTOM
+    Name:            .debug_str
+    Payload:         696E74002F622F6F626A64756D702F656D736372697074656E2D72656C6561736573006D61696E00746573742E6300636C616E672076657273696F6E2032332E302E30676974202873736F3A2F2F6368726F6D69756D2F65787465726E616C2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A65637420643733366531626430623938373036636564396236383932313163386466333961626237636434362900
+  - Type:            CUSTOM
+    Name:            .debug_line
+    Payload:         3600000004001E000000010101FB0E0D00010101010000000100000100746573742E630000000000000502020000000105050A084B0204000101
+  - Type:            CUSTOM
+    Name:            name
+    FunctionNames:
+      - Index:           0
+        Name:            __original_main
+      - Index:           1
+        Name:            main
+    GlobalNames:
+      - Index:           0
+        Name:            __stack_pointer
+  - Type:            CUSTOM
+    Name:            producers
+    Languages:
+      - Name:            C11
+        Version:         ''
+    Tools:
+      - Name:            clang
+        Version:         '23.0.0git (sso://chromium/external/github.com/llvm/llvm-project d736e1bd0b98706ced9b689211c8df39abb7cd46)'
+  - Type:            CUSTOM
+    Name:            target_features
+    Features:
+      - Prefix:          USED
+        Name:            bulk-memory
+      - Prefix:          USED
+        Name:            bulk-memory-opt
+      - Prefix:          USED
+        Name:            call-indirect-overlong
+      - Prefix:          USED
+        Name:            multivalue
+      - Prefix:          USED
+        Name:            mutable-globals
+      - Prefix:          USED
+        Name:            nontrapping-fptoint
+      - Prefix:          USED
+        Name:            reference-types
+      - Prefix:          USED
+        Name:            sign-ext
+...
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/wasm-linked.wasm b/llvm/test/tools/llvm-symbolizer/Inputs/wasm-linked.wasm
new file mode 100755
index 0000000000000000000000000000000000000000..1f48703381672ded54f4d703a4a8ed1e56451434
GIT binary patch
literal 923
zcmchV&u-H|5XNU6r%mHF?jH$SAy803Dp-z_7Nt#*3V{>iA=0%yakpLXTD$9ro)UzR
zkT at Z6;Kqp;fH&a41MnU^0T<S8k$3_Q9?yQW{xtI&1JyYJ0P=pZSb%d1WPa+*=Vab^
zQwu=cw^c$4LP)dL2#}?BwKgZ?#lrQLKh#&3a?GW=bimCi6F}NuYI%o{`L4|tFkZj7
z3tbq)&{-Wn^t}~WuXW#p?^S)RmttII6B@?~XJmui?`$<2o%NfyIvZqj3Bc(=l|0>U
zbdJ5p-ixg#I{=M)(CD0ao at b|kpOuey?Zd=WKC_}*Rlp^YjkjU1K3%Df&8-DEe-rl?
zz~^175OQK;!#>co-+z5=ecRW*+9)OrL~$hJ^R&#12y>k%Ru~kaLXK3Uh8luFZF&hL
zoQkYFL#3G%-Ti}Jzt_*0>F#MQkE19#Q!-~|9^os4N>Coz;#nE at 5}8Mw&#ppPD0z;F
z>86JVLmb3uKOP+&_J;|kqj-2U+8+#(qjY*OviuH{^wIDEz>j}<a3*kQ2Xf(#jdq{E
zJ8RXe-oF*#y4z}KXx2<fv)OLFbX<E4zExhXpgEFl2mHxIDwZ+Z?W7u&)LUQPBvnNl
znp{i at X)&RKPZhis+kILl7J<{MXp}TV(s(`?z^bhzs5Pcxd`X%$EB5~weXP3k4OJPM
z$rPz673x;t#U;N8uYT#k|K||O!UQ)G%6Z5{%9PzmDD7&w6j{*DOK#YV@)83-FAa at 3
rh8dSJ<vQ3BQW!;xf{84g7N)`z_zI_}P$U?d%K~-K(kv69{S*EGp%464

literal 0
HcmV?d00001

diff --git a/llvm/test/tools/llvm-symbolizer/wasm-linked.test b/llvm/test/tools/llvm-symbolizer/wasm-linked.test
new file mode 100644
index 0000000000000..44c39fdc47527
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/wasm-linked.test
@@ -0,0 +1,14 @@
+## To generate the corresponding WASM executable, run:
+##
+## cat <<'EOF' > test.c
+## int main() {
+##     return 42;
+## }
+## EOF
+## clang -g -O0 --target=wasm32-unknown-unknown test.c -c -o test.o
+## wasm-ld test.o -o wasm-linked.wasm --no-entry --export=main
+
+# RUN: llvm-symbolizer -e %p/Inputs/wasm-linked.wasm -f 0x66 | FileCheck %s
+
+# CHECK: __original_main
+# CHECK-NEXT: {{.*}}test.c:1:0

>From 2acf370cd545a82a788f6463ff1d65a86539bcd4 Mon Sep 17 00:00:00 2001
From: Derek Schuff <dschuff at chromium.org>
Date: Wed, 8 Apr 2026 22:37:28 +0000
Subject: [PATCH 2/2] use assembly for tests

---
 llvm/test/tools/llvm-objdump/lit.local.cfg    |   4 +
 .../tools/llvm-objdump/wasm/line-numbers.s    |  74 ++++++++++++
 .../tools/llvm-objdump/wasm/linked-dwarf.yaml | 114 ------------------
 .../llvm-symbolizer/Inputs/wasm-linked.wasm   | Bin 923 -> 0 bytes
 llvm/test/tools/llvm-symbolizer/lit.local.cfg |   4 +
 llvm/test/tools/llvm-symbolizer/wasm-basic.s  |   2 +-
 .../tools/llvm-symbolizer/wasm-linked.test    |  14 ---
 7 files changed, 83 insertions(+), 129 deletions(-)
 create mode 100644 llvm/test/tools/llvm-objdump/lit.local.cfg
 create mode 100644 llvm/test/tools/llvm-objdump/wasm/line-numbers.s
 delete mode 100644 llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml
 delete mode 100755 llvm/test/tools/llvm-symbolizer/Inputs/wasm-linked.wasm
 create mode 100644 llvm/test/tools/llvm-symbolizer/lit.local.cfg
 delete mode 100644 llvm/test/tools/llvm-symbolizer/wasm-linked.test

diff --git a/llvm/test/tools/llvm-objdump/lit.local.cfg b/llvm/test/tools/llvm-objdump/lit.local.cfg
new file mode 100644
index 0000000000000..21771693b720e
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/lit.local.cfg
@@ -0,0 +1,4 @@
+from lit.llvm import llvm_config
+
+if llvm_config.use_lld(required=False):
+    config.available_features.add("lld")
diff --git a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
new file mode 100644
index 0000000000000..79c533ddb69dc
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
@@ -0,0 +1,74 @@
+# REQUIRES: webassembly-registered-target, lld
+# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj %s -o %t.o -g
+# RUN: wasm-ld %t.o -o %t.wasm --no-entry --export=foo --export=bar
+# RUN: llvm-objdump -d --line-numbers %t.o | FileCheck --check-prefix=OBJ %s
+# RUN: llvm-objdump -d --line-numbers %t.wasm | FileCheck --check-prefix=LINKED %s
+
+# This test mirrors test/tools/llvm-symbolizer/wasm-basic.s and tests that line
+# numbers are correctly printed from DWARF information.
+
+.globl foo
+foo:
+    .functype foo () -> ()
+    nop
+    return
+    end_function
+
+.globl bar
+bar:
+    .functype bar (i32) -> (i32)
+    local.get 0
+    nop
+    return
+    end_function
+
+# OBJ:      <foo>:
+# OBJ-EMPTY:
+# OBJ-NEXT: ; foo():
+# OBJ-NEXT: ; {{.*}}line-numbers.s:10
+# OBJ-NEXT:        3: 01            nop
+# OBJ-NEXT: ; {{.*}}line-numbers.s:11
+# OBJ-NEXT:        4: 0f            return
+# OBJ-NEXT: ; {{.*}}line-numbers.s:12
+# OBJ-NEXT:        5: 0b            end
+
+# OBJ:      <bar>:
+# OBJ-EMPTY:
+# OBJ-NEXT: ; bar():
+# OBJ-NEXT: ; {{.*}}line-numbers.s:17
+# OBJ-NEXT:        8: 20 00         local.get 0
+# OBJ-NEXT: ; {{.*}}line-numbers.s:18
+# OBJ-NEXT:        a: 01            nop
+# OBJ-NEXT: ; {{.*}}line-numbers.s:19
+# OBJ-NEXT:        b: 0f            return
+# OBJ-NEXT: ; {{.*}}line-numbers.s:20
+# OBJ-NEXT:        c: 0b            end
+
+
+# Note: The linked version of this test currently bakes in the absolute binary
+# offsets in the code section (for the beginning of each function) because they
+# are relevant. We want to make sure that file offsets are used rather than
+# section offsets. But this does mean that if the output of the linker for the
+# sections that come before Code changes, then this test will have to be updated.
+
+# LINKED:      <foo>:
+# LINKED-EMPTY:
+# LINKED-NEXT: ; foo():
+# LINKED-NEXT: ; {{.*}}line-numbers.s:10
+# LINKED-NEXT:        44: 01            nop
+# LINKED-NEXT: ; {{.*}}line-numbers.s:11
+# LINKED-NEXT:        {{.*}}: 0f            return
+# LINKED-NEXT: ; {{.*}}line-numbers.s:12
+# LINKED-NEXT:        {{.*}}: 0b            end
+
+# LINKED:      <bar>:
+# LINKED-EMPTY:
+# LINKED-NEXT: ; bar():
+# LINKED-NEXT: ; {{.*}}line-numbers.s:17
+# LINKED-NEXT:        49: 20 00         local.get 0
+# LINKED-NEXT: ; {{.*}}line-numbers.s:18
+# LINKED-NEXT:        {{.*}}: 01            nop
+# LINKED-NEXT: ; {{.*}}line-numbers.s:19
+# LINKED-NEXT:        {{.*}}: 0f            return
+# LINKED-NEXT: ; {{.*}}line-numbers.s:20
+# LINKED-NEXT:        {{.*}}: 0b            end
diff --git a/llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml b/llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml
deleted file mode 100644
index 33b0dc3f33b55..0000000000000
--- a/llvm/test/tools/llvm-objdump/wasm/linked-dwarf.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-# RUN: yaml2obj %s -o %t.wasm
-# RUN: llvm-objdump -d --line-numbers %t.wasm | FileCheck %s
-
-# CHECK:      {{.*}} <__original_main>:
-# CHECK-NEXT:        .local i32
-# CHECK-NEXT: ; __original_main():
-# CHECK-NEXT: ; {{.*}}test.c:1
-# CHECK-NEXT:       {{.*}}: 23 80 80 80 80 00     global.get  0
-
---- !WASM
-FileHeader:
-  Version:         0x1
-Sections:
-  - Type:            TYPE
-    Signatures:
-      - Index:           0
-        ParamTypes:      []
-        ReturnTypes:
-          - I32
-      - Index:           1
-        ParamTypes:
-          - I32
-          - I32
-        ReturnTypes:
-          - I32
-  - Type:            FUNCTION
-    FunctionTypes:   [ 0, 1 ]
-  - Type:            TABLE
-    Tables:
-      - Index:           0
-        ElemType:        FUNCREF
-        Limits:
-          Flags:           [ HAS_MAX ]
-          Minimum:         0x1
-          Maximum:         0x1
-  - Type:            MEMORY
-    Memories:
-      - Minimum:         0x1
-  - Type:            GLOBAL
-    Globals:
-      - Index:           0
-        Type:            I32
-        Mutable:         true
-        InitExpr:
-          Opcode:          I32_CONST
-          Value:           65536
-  - Type:            EXPORT
-    Exports:
-      - Name:            memory
-        Kind:            MEMORY
-        Index:           0
-      - Name:            main
-        Kind:            FUNCTION
-        Index:           1
-  - Type:            CODE
-    Functions:
-      - Index:           0
-        Locals:
-          - Type:            I32
-            Count:           1
-        Body:            23808080800041106B21002000410036020C412A0F0B
-      - Index:           1
-        Locals:          []
-        Body:            1080808080000F0B
-  - Type:            CUSTOM
-    Name:            .debug_abbrev
-    Payload:         011101250E1305030E10171B0E110112060000022E00110112064018030E3A0B3B0B49133F190000032400030E3E0B0B0B000000
-  - Type:            CUSTOM
-    Name:            .debug_info
-    Payload:         4200000004000000000004012F0000001D00280000000000000004000000020000001900000002020000001900000004ED00009F2300000001013E0000000300000000050400
-  - Type:            CUSTOM
-    Name:            .debug_str
-    Payload:         696E74002F622F6F626A64756D702F656D736372697074656E2D72656C6561736573006D61696E00746573742E6300636C616E672076657273696F6E2032332E302E30676974202873736F3A2F2F6368726F6D69756D2F65787465726E616C2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A65637420643733366531626430623938373036636564396236383932313163386466333961626237636434362900
-  - Type:            CUSTOM
-    Name:            .debug_line
-    Payload:         3600000004001E000000010101FB0E0D00010101010000000100000100746573742E630000000000000502020000000105050A084B0204000101
-  - Type:            CUSTOM
-    Name:            name
-    FunctionNames:
-      - Index:           0
-        Name:            __original_main
-      - Index:           1
-        Name:            main
-    GlobalNames:
-      - Index:           0
-        Name:            __stack_pointer
-  - Type:            CUSTOM
-    Name:            producers
-    Languages:
-      - Name:            C11
-        Version:         ''
-    Tools:
-      - Name:            clang
-        Version:         '23.0.0git (sso://chromium/external/github.com/llvm/llvm-project d736e1bd0b98706ced9b689211c8df39abb7cd46)'
-  - Type:            CUSTOM
-    Name:            target_features
-    Features:
-      - Prefix:          USED
-        Name:            bulk-memory
-      - Prefix:          USED
-        Name:            bulk-memory-opt
-      - Prefix:          USED
-        Name:            call-indirect-overlong
-      - Prefix:          USED
-        Name:            multivalue
-      - Prefix:          USED
-        Name:            mutable-globals
-      - Prefix:          USED
-        Name:            nontrapping-fptoint
-      - Prefix:          USED
-        Name:            reference-types
-      - Prefix:          USED
-        Name:            sign-ext
-...
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/wasm-linked.wasm b/llvm/test/tools/llvm-symbolizer/Inputs/wasm-linked.wasm
deleted file mode 100755
index 1f48703381672ded54f4d703a4a8ed1e56451434..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 923
zcmchV&u-H|5XNU6r%mHF?jH$SAy803Dp-z_7Nt#*3V{>iA=0%yakpLXTD$9ro)UzR
zkT at Z6;Kqp;fH&a41MnU^0T<S8k$3_Q9?yQW{xtI&1JyYJ0P=pZSb%d1WPa+*=Vab^
zQwu=cw^c$4LP)dL2#}?BwKgZ?#lrQLKh#&3a?GW=bimCi6F}NuYI%o{`L4|tFkZj7
z3tbq)&{-Wn^t}~WuXW#p?^S)RmttII6B@?~XJmui?`$<2o%NfyIvZqj3Bc(=l|0>U
zbdJ5p-ixg#I{=M)(CD0ao at b|kpOuey?Zd=WKC_}*Rlp^YjkjU1K3%Df&8-DEe-rl?
zz~^175OQK;!#>co-+z5=ecRW*+9)OrL~$hJ^R&#12y>k%Ru~kaLXK3Uh8luFZF&hL
zoQkYFL#3G%-Ti}Jzt_*0>F#MQkE19#Q!-~|9^os4N>Coz;#nE at 5}8Mw&#ppPD0z;F
z>86JVLmb3uKOP+&_J;|kqj-2U+8+#(qjY*OviuH{^wIDEz>j}<a3*kQ2Xf(#jdq{E
zJ8RXe-oF*#y4z}KXx2<fv)OLFbX<E4zExhXpgEFl2mHxIDwZ+Z?W7u&)LUQPBvnNl
znp{i at X)&RKPZhis+kILl7J<{MXp}TV(s(`?z^bhzs5Pcxd`X%$EB5~weXP3k4OJPM
z$rPz673x;t#U;N8uYT#k|K||O!UQ)G%6Z5{%9PzmDD7&w6j{*DOK#YV@)83-FAa at 3
rh8dSJ<vQ3BQW!;xf{84g7N)`z_zI_}P$U?d%K~-K(kv69{S*EGp%464

diff --git a/llvm/test/tools/llvm-symbolizer/lit.local.cfg b/llvm/test/tools/llvm-symbolizer/lit.local.cfg
new file mode 100644
index 0000000000000..21771693b720e
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/lit.local.cfg
@@ -0,0 +1,4 @@
+from lit.llvm import llvm_config
+
+if llvm_config.use_lld(required=False):
+    config.available_features.add("lld")
diff --git a/llvm/test/tools/llvm-symbolizer/wasm-basic.s b/llvm/test/tools/llvm-symbolizer/wasm-basic.s
index 1f425e5259316..864961093bf24 100644
--- a/llvm/test/tools/llvm-symbolizer/wasm-basic.s
+++ b/llvm/test/tools/llvm-symbolizer/wasm-basic.s
@@ -1,4 +1,4 @@
-# REQUIRES: webassembly-registered-target
+# REQUIRES: webassembly-registered-target, lld
 # RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj %s -o %t.o -g
 # RUN: llvm-symbolizer --basenames --output-style=GNU -e %t.o 1 2 3 4 5 6 7 8 9 10 11 12 13 | FileCheck %s
 
diff --git a/llvm/test/tools/llvm-symbolizer/wasm-linked.test b/llvm/test/tools/llvm-symbolizer/wasm-linked.test
deleted file mode 100644
index 44c39fdc47527..0000000000000
--- a/llvm/test/tools/llvm-symbolizer/wasm-linked.test
+++ /dev/null
@@ -1,14 +0,0 @@
-## To generate the corresponding WASM executable, run:
-##
-## cat <<'EOF' > test.c
-## int main() {
-##     return 42;
-## }
-## EOF
-## clang -g -O0 --target=wasm32-unknown-unknown test.c -c -o test.o
-## wasm-ld test.o -o wasm-linked.wasm --no-entry --export=main
-
-# RUN: llvm-symbolizer -e %p/Inputs/wasm-linked.wasm -f 0x66 | FileCheck %s
-
-# CHECK: __original_main
-# CHECK-NEXT: {{.*}}test.c:1:0



More information about the llvm-commits mailing list