70 lines · plain
1; RUN: llc -filetype=obj -o %t.o %s2; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hidden.s -o %t2.o3; RUN: rm -f %t2.a4; RUN: llvm-ar rcs %t2.a %t2.o5 6; Test that symbols with hidden visibility are not export, even with7; --export-dynamic8; RUN: wasm-ld --export-dynamic %t.o %t2.a -o %t.wasm9; RUN: obj2yaml %t.wasm | FileCheck %s10 11; Test that symbols with default visibility are not exported without12; --export-dynamic13; RUN: wasm-ld %t.o %t2.a -o %t.nodef.wasm14; RUN: obj2yaml %t.nodef.wasm | FileCheck %s -check-prefix=NO-DEFAULT15 16 17target triple = "wasm32-unknown-unknown"18 19define hidden i32 @objectHidden() {20entry:21 ret i32 022}23 24define i32 @objectDefault() {25entry:26 ret i32 027}28 29declare i32 @archiveHidden()30declare i32 @archiveDefault()31 32define void @_start() {33entry:34 %call1 = call i32 @objectHidden()35 %call2 = call i32 @objectDefault()36 %call3 = call i32 @archiveHidden()37 %call4 = call i32 @archiveDefault()38 ret void39}40 41; CHECK: - Type: EXPORT42; CHECK-NEXT: Exports:43; CHECK-NEXT: - Name: memory44; CHECK-NEXT: Kind: MEMORY45; CHECK-NEXT: Index: 046; CHECK-NEXT: - Name: __stack_pointer47; CHECK-NEXT: Kind: GLOBAL48; CHECK-NEXT: Index: 049; CHECK-NEXT: - Name: objectDefault50; CHECK-NEXT: Kind: FUNCTION51; CHECK-NEXT: Index: 152; CHECK-NEXT: - Name: _start53; CHECK-NEXT: Kind: FUNCTION54; CHECK-NEXT: Index: 255; CHECK-NEXT: - Name: archiveDefault56; CHECK-NEXT: Kind: FUNCTION57; CHECK-NEXT: Index: 458; CHECK-NEXT: - Type:59 60 61; NO-DEFAULT: - Type: EXPORT62; NO-DEFAULT-NEXT: Exports:63; NO-DEFAULT-NEXT: - Name: memory64; NO-DEFAULT-NEXT: Kind: MEMORY65; NO-DEFAULT-NEXT: Index: 066; NO-DEFAULT-NEXT: - Name: _start67; NO-DEFAULT-NEXT: Kind: FUNCTION68; NO-DEFAULT-NEXT: Index: 269; NO-DEFAULT-NEXT: - Type:70