brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 6c639a8 Raw
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