diff --git a/lld/test/wasm/cxx-mangling.ll b/lld/test/wasm/cxx-mangling.ll deleted file mode 100644 --- a/lld/test/wasm/cxx-mangling.ll +++ /dev/null @@ -1,60 +0,0 @@ -; RUN: llc -filetype=obj %s -o %t.o -; RUN: wasm-ld --export=_Z3fooi --demangle -o %t_demangle.wasm %t.o -; RUN: obj2yaml %t_demangle.wasm | FileCheck --check-prefixes=CHECK,DEMANGLE %s -; RUN: wasm-ld --export=_Z3fooi --no-demangle -o %t_nodemangle.wasm %t.o -; RUN: obj2yaml %t_nodemangle.wasm | FileCheck --check-prefixes=CHECK,MANGLE %s - -target triple = "wasm32-unknown-unknown" - -; Check that the EXPORT name is still mangled, but that the "name" custom -; section contains the unmangled name. - -define void @_Z3fooi(i32 %arg) { - ret void -} - -declare extern_weak void @_Z3bari(i32 %arg) - -define void @_start() { - call void @_Z3fooi(i32 1) - call void @_Z3bari(i32 1) - ret void -} - -; CHECK: - Type: EXPORT -; CHECK-NEXT: Exports: -; CHECK-NEXT: - Name: memory -; CHECK-NEXT: Kind: MEMORY -; CHECK-NEXT: Index: 0 -; CHECK-NEXT: - Name: _Z3fooi -; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Index: 1 -; CHECK-NEXT: - Name: _start -; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Index: 2 -; CHECK-NEXT: - Type: CODE -; CHECK-NEXT: Functions: -; CHECK-NEXT: - Index: 0 -; CHECK-NEXT: Locals: -; CHECK-NEXT: Body: 000B -; CHECK-NEXT: - Index: 1 -; CHECK-NEXT: Locals: -; CHECK-NEXT: Body: 0B -; CHECK-NEXT: - Index: 2 -; CHECK-NEXT: Locals: -; CHECK-NEXT: Body: 410110818080800041011080808080000B -; CHECK-NEXT: - Type: CUSTOM -; CHECK-NEXT: Name: name -; CHECK-NEXT: FunctionNames: -; CHECK-NEXT: - Index: 0 -; DEMANGLE-NEXT: Name: 'undefined_weak:bar(int)' -; MANGLE-NEXT: Name: 'undefined_weak:_Z3bari' -; CHECK-NEXT: - Index: 1 -; DEMANGLE-NEXT: Name: 'foo(int)' -; MANGLE-NEXT: Name: _Z3fooi -; CHECK-NEXT: - Index: 2 -; CHECK-NEXT: Name: _start -; CHECK-NEXT: GlobalNames: -; CHECK-NEXT: - Index: 0 -; CHECK-NEXT: Name: __stack_pointer -; CHECK-NEXT: ... diff --git a/lld/test/wasm/name-section-mangling.s b/lld/test/wasm/name-section-mangling.s new file mode 100644 --- /dev/null +++ b/lld/test/wasm/name-section-mangling.s @@ -0,0 +1,64 @@ +# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s +# RUN: wasm-ld --export=_Z3fooi --demangle -o %t_demangle.wasm %t.o +# RUN: obj2yaml %t_demangle.wasm | FileCheck --check-prefixes=CHECK,DEMANGLE %s +# RUN: wasm-ld --export=_Z3fooi --no-demangle -o %t_nodemangle.wasm %t.o +# RUN: obj2yaml %t_nodemangle.wasm | FileCheck --check-prefixes=CHECK,MANGLE %s + +# Check that the EXPORT name is still mangled, but that the "name" custom +# section contains the unmangled name. + +.globl _start +.globl _Z3fooi +.weak _Z3bari + +_start: + .functype _start () -> () + i32.const 1 + call _Z3fooi + i32.const 1 + call _Z3bari + end_function + +_Z3fooi: + .functype _Z3fooi (i32) -> () + end_function + +.functype _Z3bari (i32) -> () + +# CHECK: - Type: EXPORT +# CHECK-NEXT: Exports: +# CHECK-NEXT: - Name: memory +# CHECK-NEXT: Kind: MEMORY +# CHECK-NEXT: Index: 0 +# CHECK-NEXT: - Name: _start +# CHECK-NEXT: Kind: FUNCTION +# CHECK-NEXT: Index: 1 +# CHECK-NEXT: - Name: _Z3fooi +# CHECK-NEXT: Kind: FUNCTION +# CHECK-NEXT: Index: 2 +# CHECK-NEXT: - Type: CODE +# CHECK-NEXT: Functions: +# CHECK-NEXT: - Index: 0 +# CHECK-NEXT: Locals: +# CHECK-NEXT: Body: 000B +# CHECK-NEXT: - Index: 1 +# CHECK-NEXT: Locals: +# CHECK-NEXT: Body: 410110828080800041011080808080000B +# CHECK-NEXT: - Index: 2 +# CHECK-NEXT: Locals: +# CHECK-NEXT: Body: 0B +# CHECK-NEXT: - Type: CUSTOM +# CHECK-NEXT: Name: name +# CHECK-NEXT: FunctionNames: +# CHECK-NEXT: - Index: 0 +# DEMANGLE-NEXT: Name: 'undefined_weak:bar(int)' +# MANGLE-NEXT: Name: 'undefined_weak:_Z3bari' +# CHECK-NEXT: - Index: 1 +# CHECK-NEXT: Name: _start +# CHECK-NEXT: - Index: 2 +# DEMANGLE-NEXT: Name: 'foo(int)' +# MANGLE-NEXT: Name: _Z3fooi +# CHECK-NEXT: GlobalNames: +# CHECK-NEXT: - Index: 0 +# CHECK-NEXT: Name: __stack_pointer +# CHECK-NEXT: ...