[llvm] SymbolizableObjectFile: Fix Wasm test to avoid layering violation (PR #193574)
Derek Schuff via llvm-commits
llvm-commits at lists.llvm.org
Fri May 8 11:07:59 PDT 2026
https://github.com/dschuff updated https://github.com/llvm/llvm-project/pull/193574
>From 166e1059b6ac4cb97b28ed85ec49e56df78304e2 Mon Sep 17 00:00:00 2001
From: Derek Schuff <dschuff at chromium.org>
Date: Wed, 22 Apr 2026 19:42:20 +0000
Subject: [PATCH 1/3] SymbolizableObjectFile: Fix Wasm test to avoid layering
violation
Tests for LLVM libraries should not require wasm-ld. It's not necessary
in this case to generate the binary at test time, so just check it in.
---
.../llvm-objdump/wasm/Inputs/line-numbers.wasm | Bin 0 -> 649 bytes
llvm/test/tools/llvm-objdump/wasm/line-numbers.s | 9 ++++++---
2 files changed, 6 insertions(+), 3 deletions(-)
create mode 100755 llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm
diff --git a/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm b/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm
new file mode 100755
index 0000000000000000000000000000000000000000..593a3857cd17a3c98b7a7222774d26d9fda287cc
GIT binary patch
literal 649
zcmb7C!A{#i5S`g|92XO4f>aK at 7zrdeIE$#%N>n}cPLK2&>|}`?yxwSc1L9Kh1^uCZ
zLO-d8cE(PS;MS4e?vA}P^XBb9;SB-+z7aP7H~554QVPJHM8G&9|Lb}krTup at HriPC
zC_vs?3n0tF0qzV$1h}8Zknsk;F&)ozxtdR^=GOkA#1Vm3uF+au-<y2t>_Sh2Vn+q-
zg9_HxzV&lkE at msUR1ZW=)m5YOW at Sq4{Mdsk)#i7;(81qTN*h0Q)iUTNce>Vv*B;s$
zW}2Or<jykNWLH<;zhxI6#^>Ync@@q8*MhrXRw+R++J@*bBJ>FW`C!vbQI<~M;}G8-
zULVTjeR7f<^eAKpWO5mQj)!e~pZ2!bUD3?7Kc*C%c`E{+Sq at Gf6Q1qkwoVuKm#mBH
z?z7(!dKLHcS#6f-2jz?4npQ;ovp3+4c at gmcR0nt^d)r=5Fe$l<>PXOVAoK*Yk_Y(Z
nX!GSVY6_!aG<*@y4~c0vILLF;A0g~dCO#C?yUEg4P0;Qi6p4=*
literal 0
HcmV?d00001
diff --git a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
index 829c79908bb12..8151a2683917b 100644
--- a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
+++ b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
@@ -1,8 +1,11 @@
-# REQUIRES: webassembly-registered-target, lld
+# REQUIRES: webassembly-registered-target
# 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
+
+# The pre-compiled line-numbers.wasm test was created by linking this object file:
+# wasm-ld %t.o -o %t.wasm --no-entry --export=foo --export=bar
+# However the binary is checked in to avoid a dependence on wasm-ld.
+# RUN: llvm-objdump -d --line-numbers %S/Inputs/line-numbers.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.
>From e0c5b30bb61d9091689d459d542602d76b3531d4 Mon Sep 17 00:00:00 2001
From: Derek Schuff <dschuff at chromium.org>
Date: Wed, 22 Apr 2026 21:19:23 +0000
Subject: [PATCH 2/3] Update line numbers in the test and regenerate to match
after we added lines to the top
---
.../wasm/Inputs/line-numbers.wasm | Bin 649 -> 649 bytes
.../tools/llvm-objdump/wasm/line-numbers.s | 28 +++++++++---------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm b/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm
index 593a3857cd17a3c98b7a7222774d26d9fda287cc..5261c96a01e8f03d34eb6add57d021ea21253cb5 100755
GIT binary patch
delta 54
zcmeBV?PT4+#3;naz`(!+!byom42(dA=w=Z{IYuFVMtwylMg~Sk2396^pfI!8WEUn^
E0J!-D;s5{u
delta 54
zcmeBV?PT4+#3;ngz`(!+!byom42(dA&}I=vIYuEKMtwylMg~Sk2396^pfI!WWEUn^
E0Jp~l)&Kwi
diff --git a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
index 8151a2683917b..f73290ff436c8 100644
--- a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
+++ b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
@@ -28,23 +28,23 @@ bar:
# OBJ: <foo>:
# OBJ-EMPTY:
# OBJ-NEXT: ; foo():
-# OBJ-NEXT: ; {{.*}}line-numbers.s:13
+# OBJ-NEXT: ; {{.*}}line-numbers.s:16
# OBJ-NEXT: 3: 01 nop
-# OBJ-NEXT: ; {{.*}}line-numbers.s:14
+# OBJ-NEXT: ; {{.*}}line-numbers.s:17
# OBJ-NEXT: 4: 0f return
-# OBJ-NEXT: ; {{.*}}line-numbers.s:15
+# OBJ-NEXT: ; {{.*}}line-numbers.s:18
# OBJ-NEXT: 5: 0b end
# OBJ: <bar>:
# OBJ-EMPTY:
# OBJ-NEXT: ; bar():
-# OBJ-NEXT: ; {{.*}}line-numbers.s:20
+# OBJ-NEXT: ; {{.*}}line-numbers.s:23
# OBJ-NEXT: 8: 20 00 local.get 0
-# OBJ-NEXT: ; {{.*}}line-numbers.s:21
+# OBJ-NEXT: ; {{.*}}line-numbers.s:24
# OBJ-NEXT: a: 01 nop
-# OBJ-NEXT: ; {{.*}}line-numbers.s:22
+# OBJ-NEXT: ; {{.*}}line-numbers.s:25
# OBJ-NEXT: b: 0f return
-# OBJ-NEXT: ; {{.*}}line-numbers.s:23
+# OBJ-NEXT: ; {{.*}}line-numbers.s:26
# OBJ-NEXT: c: 0b end
@@ -57,21 +57,21 @@ bar:
# LINKED: <foo>:
# LINKED-EMPTY:
# LINKED-NEXT: ; foo():
-# LINKED-NEXT: ; {{.*}}line-numbers.s:13
+# LINKED-NEXT: ; {{.*}}line-numbers.s:16
# LINKED-NEXT: 44: 01 nop
-# LINKED-NEXT: ; {{.*}}line-numbers.s:14
+# LINKED-NEXT: ; {{.*}}line-numbers.s:17
# LINKED-NEXT: {{.*}}: 0f return
-# LINKED-NEXT: ; {{.*}}line-numbers.s:15
+# LINKED-NEXT: ; {{.*}}line-numbers.s:18
# LINKED-NEXT: {{.*}}: 0b end
# LINKED: <bar>:
# LINKED-EMPTY:
# LINKED-NEXT: ; bar():
-# LINKED-NEXT: ; {{.*}}line-numbers.s:20
+# LINKED-NEXT: ; {{.*}}line-numbers.s:23
# LINKED-NEXT: 49: 20 00 local.get 0
-# LINKED-NEXT: ; {{.*}}line-numbers.s:21
+# LINKED-NEXT: ; {{.*}}line-numbers.s:24
# LINKED-NEXT: {{.*}}: 01 nop
-# LINKED-NEXT: ; {{.*}}line-numbers.s:22
+# LINKED-NEXT: ; {{.*}}line-numbers.s:25
# LINKED-NEXT: {{.*}}: 0f return
-# LINKED-NEXT: ; {{.*}}line-numbers.s:23
+# LINKED-NEXT: ; {{.*}}line-numbers.s:26
# LINKED-NEXT: {{.*}}: 0b end
>From c4aab5836f56542027686931f359f9dfb5a4003e Mon Sep 17 00:00:00 2001
From: Derek Schuff <dschuff at chromium.org>
Date: Fri, 8 May 2026 18:07:23 +0000
Subject: [PATCH 3/3] address feedback
---
.../wasm/Inputs/line-numbers.wasm | Bin 649 -> 0 bytes
.../wasm/Inputs/line-numbers.yaml | 72 ++++++++++++++++++
.../tools/llvm-objdump/wasm/line-numbers.s | 36 ++++-----
3 files changed, 90 insertions(+), 18 deletions(-)
delete mode 100755 llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm
create mode 100644 llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.yaml
diff --git a/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm b/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.wasm
deleted file mode 100755
index 5261c96a01e8f03d34eb6add57d021ea21253cb5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 649
zcmb7C!EW0y3?(JU at fsv)I<!6P;sPzu9vl at LumK%*=)F63*VInbz^P>gl9HmAHD9nF
z+9&LjcGyTeDX`u~;7Ot_l8;Y>+#3V{d?W4v?(i9(r4)c2iGXoJ{`F=P^}0tgHriPC
zBtYI<3m}W!0q*rh1UT%)kn#q<us5FRVl|(X^}YQ`i6a87T%)n7TAOU?>_Sh2Vn+q-
zg9_GGzVS0#EM_aSRF6bWRb{QSdSwdj{Mdsk)b at 9_(7`{HN*h0Q<ud3xbGp*G*B+W0
zW}2QC<jzuCr#Cm>zNYU#j4#KR^D<ljZUlG1tOf+ZXd0r!A)!kE$oku6@}h8hjU(JY
zzCD)7yW}i++o6y>kjYj2IUY6beH!epyS$!je at ZDh^G*alvmBf}CcN0kU7a at W4_O=6
z-e<oh^eXPhi`p#Hcgh#REv<<7d(h{Nc at gmcR0nt^d(&P=Fey1ibs}gu5ITZc$s_!7
nvi))u)w$7dF#0E+9};`*;2_UU_W)rynfQ=TA0|s%)<L_!A6Jhg
diff --git a/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.yaml b/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.yaml
new file mode 100644
index 0000000000000..e73bee0a20eca
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/wasm/Inputs/line-numbers.yaml
@@ -0,0 +1,72 @@
+--- !WASM
+FileHeader:
+ Version: 0x1
+Sections:
+ - Type: TYPE
+ Signatures:
+ - Index: 0
+ ParamTypes: []
+ ReturnTypes: []
+ - Index: 1
+ ParamTypes:
+ - I32
+ ReturnTypes:
+ - I32
+ - Type: FUNCTION
+ FunctionTypes: [ 0, 1 ]
+ - 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: foo
+ Kind: FUNCTION
+ Index: 0
+ - Name: bar
+ Kind: FUNCTION
+ Index: 1
+ - Type: CODE
+ Functions:
+ - Index: 0
+ Locals: []
+ Body: 010F0B
+ - Index: 1
+ Locals: []
+ Body: 2000010F0B
+ - Type: CUSTOM
+ Name: .debug_info
+ Payload: BB000000040000000000040100000000000000006C6C766D2D70726F6A6563742F6C6C766D2F746573742F746F6F6C732F6C6C766D2D6F626A64756D702F7761736D2F6C696E652D6E756D626572732E73002F622F6F626A64756D702D6A6574736B692F656D736372697074656E2D72656C6561736573006C6C766D2D6D6320286261736564206F6E204C4C564D2032332E302E306769742900018002666F6F00010000000E00000002000000026261720001000000150000000700000000
+ - Type: CUSTOM
+ Name: .debug_abbrev
+ Payload: 0111011017551703081B08250813050000020A0003083A063B061101000000
+ - Type: CUSTOM
+ Name: .debug_aranges
+ Payload: '24000000020000000000040000000000020000000400000007000000060000000000000000000000'
+ - Type: CUSTOM
+ Name: .debug_ranges
+ Payload: FFFFFFFF020000000000000004000000FFFFFFFF0700000000000000060000000000000000000000
+ - Type: CUSTOM
+ Name: .debug_line
+ Payload: 7E000000040055000000010101FB0E0D0001010101000000010000016C6C766D2D70726F6A6563742F6C6C766D2F746573742F746F6F6C732F6C6C766D2D6F626A64756D702F7761736D00006C696E652D6E756D626572732E73000100000000050202000000030F012F210201000101000502070000000316013D21210201000101
+ - Type: CUSTOM
+ Name: name
+ FunctionNames:
+ - Index: 0
+ Name: foo
+ - Index: 1
+ Name: bar
+ GlobalNames:
+ - Index: 0
+ Name: __stack_pointer
+...
diff --git a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
index f73290ff436c8..7a26ab7504178 100644
--- a/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
+++ b/llvm/test/tools/llvm-objdump/wasm/line-numbers.s
@@ -4,8 +4,8 @@
# The pre-compiled line-numbers.wasm test was created by linking this object file:
# wasm-ld %t.o -o %t.wasm --no-entry --export=foo --export=bar
-# However the binary is checked in to avoid a dependence on wasm-ld.
-# RUN: llvm-objdump -d --line-numbers %S/Inputs/line-numbers.wasm | FileCheck --check-prefix=LINKED %s
+# RUN: yaml2obj %S/Inputs/line-numbers.yaml -o %t.wasm
+# 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.
@@ -28,23 +28,23 @@ bar:
# OBJ: <foo>:
# OBJ-EMPTY:
# OBJ-NEXT: ; foo():
-# OBJ-NEXT: ; {{.*}}line-numbers.s:16
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-15]]
# OBJ-NEXT: 3: 01 nop
-# OBJ-NEXT: ; {{.*}}line-numbers.s:17
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-16]]
# OBJ-NEXT: 4: 0f return
-# OBJ-NEXT: ; {{.*}}line-numbers.s:18
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-17]]
# OBJ-NEXT: 5: 0b end
# OBJ: <bar>:
# OBJ-EMPTY:
# OBJ-NEXT: ; bar():
-# OBJ-NEXT: ; {{.*}}line-numbers.s:23
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-18]]
# OBJ-NEXT: 8: 20 00 local.get 0
-# OBJ-NEXT: ; {{.*}}line-numbers.s:24
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-19]]
# OBJ-NEXT: a: 01 nop
-# OBJ-NEXT: ; {{.*}}line-numbers.s:25
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-20]]
# OBJ-NEXT: b: 0f return
-# OBJ-NEXT: ; {{.*}}line-numbers.s:26
+# OBJ-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-21]]
# OBJ-NEXT: c: 0b end
@@ -57,21 +57,21 @@ bar:
# LINKED: <foo>:
# LINKED-EMPTY:
# LINKED-NEXT: ; foo():
-# LINKED-NEXT: ; {{.*}}line-numbers.s:16
-# LINKED-NEXT: 44: 01 nop
-# LINKED-NEXT: ; {{.*}}line-numbers.s:17
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-44]]
+# LINKED-NEXT: 5c: 01 nop
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-45]]
# LINKED-NEXT: {{.*}}: 0f return
-# LINKED-NEXT: ; {{.*}}line-numbers.s:18
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-46]]
# LINKED-NEXT: {{.*}}: 0b end
# LINKED: <bar>:
# LINKED-EMPTY:
# LINKED-NEXT: ; bar():
-# LINKED-NEXT: ; {{.*}}line-numbers.s:23
-# LINKED-NEXT: 49: 20 00 local.get 0
-# LINKED-NEXT: ; {{.*}}line-numbers.s:24
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-47]]
+# LINKED-NEXT: 61: 20 00 local.get 0
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-48]]
# LINKED-NEXT: {{.*}}: 01 nop
-# LINKED-NEXT: ; {{.*}}line-numbers.s:25
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-49]]
# LINKED-NEXT: {{.*}}: 0f return
-# LINKED-NEXT: ; {{.*}}line-numbers.s:26
+# LINKED-NEXT: ; {{.*}}line-numbers.s:[[#@LINE-50]]
# LINKED-NEXT: {{.*}}: 0b end
More information about the llvm-commits
mailing list