96 lines · plain
1; Test that internal symbols can still be GC'd when with --export-dynamic.2; RUN: llc -mcpu=mvp -filetype=obj %s -o %t.o3; RUN: wasm-ld --export-dynamic -o %t.wasm %t.o4; RUN: obj2yaml %t.wasm | FileCheck %s5 6target triple = "wasm32-unknown-unknown"7 8@foo = default global i32 1, align 49@bar = internal default global i32 3, align 410 11define internal i32 @baz() local_unnamed_addr {12entry:13 %0 = load i32, ptr @bar, align 414 ret i32 %015}16 17define void @_start() local_unnamed_addr {18entry:19 call i32 @baz()20 ret void21}22 23; CHECK: --- !WASM24; CHECK-NEXT: FileHeader:25; CHECK-NEXT: Version: 0x126; CHECK-NEXT: Sections:27; CHECK-NEXT: - Type: TYPE28; CHECK-NEXT: Signatures:29; CHECK-NEXT: - Index: 030; CHECK-NEXT: ParamTypes:31; CHECK-NEXT: ReturnTypes:32; CHECK-NEXT: - I3233; CHECK-NEXT: - Index: 134; CHECK-NEXT: ParamTypes:35; CHECK-NEXT: ReturnTypes: []36; CHECK-NEXT: - Type: FUNCTION37; CHECK-NEXT: FunctionTypes: [ 0, 1 ]38; CHECK-NEXT: - Type: MEMORY39; CHECK-NEXT: Memories:40; CHECK-NEXT: - Minimum: 0x241; CHECK-NEXT: - Type: GLOBAL42; CHECK-NEXT: Globals:43; CHECK-NEXT: - Index: 044; CHECK-NEXT: Type: I3245; CHECK-NEXT: Mutable: true46; CHECK-NEXT: InitExpr:47; CHECK-NEXT: Opcode: I32_CONST48; CHECK-NEXT: Value: 6553649; CHECK-NEXT: - Index: 150; CHECK-NEXT: Type: I3251; CHECK-NEXT: Mutable: false52; CHECK-NEXT: InitExpr:53; CHECK-NEXT: Opcode: I32_CONST54; CHECK-NEXT: Value: 6553655; CHECK-NEXT: - Type: EXPORT56; CHECK-NEXT: Exports:57; CHECK-NEXT: - Name: memory58; CHECK-NEXT: Kind: MEMORY59; CHECK-NEXT: Index: 060; CHECK-NEXT: - Name: _start61; CHECK-NEXT: Kind: FUNCTION62; CHECK-NEXT: Index: 163; CHECK-NEXT: - Name: foo64; CHECK-NEXT: Kind: GLOBAL65; CHECK-NEXT: Index: 166; CHECK-NEXT: - Type: CODE67; CHECK-NEXT: Functions:68; CHECK-NEXT: - Index: 069; CHECK-NEXT: Locals:70; CHECK-NEXT: Body: 4100280284808480000B71; CHECK-NEXT: - Index: 172; CHECK-NEXT: Locals:73; CHECK-NEXT: Body: 1080808080001A0B74; CHECK-NEXT: - Type: DATA75; CHECK-NEXT: Segments:76; CHECK-NEXT: - SectionOffset: 877; CHECK-NEXT: InitFlags: 078; CHECK-NEXT: Offset:79; CHECK-NEXT: Opcode: I32_CONST80; CHECK-NEXT: Value: 6553681; CHECK-NEXT: Content: '0100000003000000'82; CHECK-NEXT: - Type: CUSTOM83; CHECK-NEXT: Name: name84; CHECK-NEXT: FunctionNames:85; CHECK-NEXT: - Index: 086; CHECK-NEXT: Name: baz87; CHECK-NEXT: - Index: 188; CHECK-NEXT: Name: _start89; CHECK-NEXT: GlobalNames:90; CHECK-NEXT: - Index: 091; CHECK-NEXT: Name: __stack_pointer92; CHECK-NEXT: DataSegmentNames:93; CHECK-NEXT: - Index: 094; CHECK-NEXT: Name: .data95; CHECK-NEXT: ...96