Index: test/wasm/Inputs/ret32.ll =================================================================== --- test/wasm/Inputs/ret32.ll +++ test/wasm/Inputs/ret32.ll @@ -1,8 +1,6 @@ target triple = "wasm32-unknown-unknown" -; Function Attrs: norecurse nounwind readnone -define i32 @ret32(float %arg) #0 { +define hidden i32 @ret32(float %arg) { entry: ret i32 0 - ; ptrtoint (i32 (float)* @ret32 to i32) } Index: test/wasm/Inputs/ret64.ll =================================================================== --- test/wasm/Inputs/ret64.ll +++ test/wasm/Inputs/ret64.ll @@ -1,6 +1,6 @@ target triple = "wasm32-unknown-unknown" -define i64 @ret64(double %arg) local_unnamed_addr #0 { +define hidden i64 @ret64(double %arg) { entry: ret i64 1 } Index: test/wasm/load-undefined.test =================================================================== --- test/wasm/load-undefined.test +++ test/wasm/load-undefined.test @@ -5,31 +5,32 @@ ; RUN: llc -filetype=obj %S/Inputs/ret32.ll -o %t2.o ; RUN: llc -filetype=obj %S/Inputs/start.ll -o %t.start.o ; RUN: llvm-ar rcs %t2.a %t2.o -; RUN: wasm-ld %t.start.o %t2.a %t.o -o %t.wasm -u ret32 --undefined ret64 +; RUN: wasm-ld %t.start.o --no-gc-sections %t2.a %t.o -o %t.wasm -u ret32 --undefined ret64 ; RUN: obj2yaml %t.wasm | FileCheck %s +; RUN: wasm-ld %t.start.o --no-gc-sections %t2.a %t.o -o %t2.wasm +; RUN: obj2yaml %t2.wasm | FileCheck %s -check-prefix=NO-LOAD -; CHECK: - Type: EXPORT -; CHECK-NEXT: Exports: -; CHECK-NEXT: - Name: memory -; CHECK-NEXT: Kind: MEMORY -; CHECK-NEXT: Index: 0 -; CHECK-NEXT: - Name: __heap_base -; CHECK-NEXT: Kind: GLOBAL -; CHECK-NEXT: Index: 1 -; CHECK-NEXT: - Name: __data_end -; CHECK-NEXT: Kind: GLOBAL -; CHECK-NEXT: Index: 2 -; CHECK-NEXT: - Name: _start -; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Index: 1 -; CHECK-NEXT: - Name: ret32 -; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Index: 2 -; CHECK-NEXT: - Name: ret64 -; CHECK-NEXT: Kind: FUNCTION -; CHECK-NEXT: Index: 3 -; CHECK-NEXT: - Type: +; CHECK: Name: name +; CHECK-NEXT: FunctionNames: +; CHECK-NEXT: - Index: 0 +; CHECK-NEXT: Name: __wasm_call_ctors +; CHECK-NEXT: - Index: 1 +; CHECK-NEXT: Name: _start +; CHECK-NEXT: - Index: 2 +; CHECK-NEXT: Name: ret32 +; CHECK-NEXT: - Index: 3 +; CHECK-NEXT: Name: ret64 +; CHECK-NEXT: ... +; NO-LOAD: Name: name +; NO-LOAD-NEXT: FunctionNames: +; NO-LOAD-NEXT: - Index: 0 +; NO-LOAD-NEXT: Name: __wasm_call_ctors +; NO-LOAD-NEXT: - Index: 1 +; NO-LOAD-NEXT: Name: _start +; NO-LOAD-NEXT: - Index: 2 +; NO-LOAD-NEXT: Name: ret64 +; NO-LOAD-NEXT: ... ; Verify that referencing a symbol that doesn't exist won't work ; RUN: not wasm-ld %t.start.o -o %t.wasm -u symboldoesnotexist 2>&1 | FileCheck -check-prefix=CHECK-UNDEFINED1 %s