brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · c3d4a75 Raw
85 lines · plain
1# Unresolve data symbols are allowing under import-dynamic when GOT2# relocations are used3# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t-dynamic.o4# RUN: wasm-ld %t-dynamic.o -o %t.wasm --unresolved-symbols=import-dynamic 2>&1 | FileCheck -check-prefix=WARN %s5# WARN: wasm-ld: warning: dynamic imports are not yet stable (--unresolved-symbols=import-dynamic)6# RUN: obj2yaml %t.wasm | FileCheck %s7 8.functype undef () -> ()9 10.globl get_data_addr11get_data_addr:12    .functype get_data_addr () -> (i32)13    global.get undef_data@GOT14    return15    end_function16 17.globl get_func_addr18get_func_addr:19    .functype get_func_addr () -> (i32)20    global.get undef@GOT21    return22    end_function23 24.globl _start25_start:26    .functype _start () -> ()27    call undef28    call get_func_addr29    drop30    call get_data_addr31    i32.load data_ptr32    drop33    end_function34 35.section  .data.data_ptr,"",@36data_ptr:37  .int32  data_external+4238  .size data_ptr, 439 40.size data_external, 441 42#      CHECK:  - Type:            IMPORT43# CHECK-NEXT:    Imports:44# CHECK-NEXT:      - Module:          env45# CHECK-NEXT:        Field:           undef46# CHECK-NEXT:        Kind:            FUNCTION47# CHECK-NEXT:        SigIndex:        048# CHECK-NEXT:      - Module:          GOT.mem49# CHECK-NEXT:        Field:           undef_data50# CHECK-NEXT:        Kind:            GLOBAL51# CHECK-NEXT:        GlobalType:      I3252# CHECK-NEXT:        GlobalMutable:   true53# CHECK-NEXT:      - Module:          GOT.func54# CHECK-NEXT:        Field:           undef55# CHECK-NEXT:        Kind:            GLOBAL56# CHECK-NEXT:        GlobalType:      I3257# CHECK-NEXT:        GlobalMutable:   true58 59#      CHECK:  - Type:            CUSTOM60# CHECK-NEXT:    Name:            name61# CHECK-NEXT:    FunctionNames:62# CHECK-NEXT:      - Index:           063# CHECK-NEXT:        Name:            undef64# CHECK-NEXT:      - Index:           165# CHECK-NEXT:        Name:            __wasm_apply_data_relocs66# CHECK-NEXT:      - Index:           267# CHECK-NEXT:        Name:            get_data_addr68# CHECK-NEXT:      - Index:           369# CHECK-NEXT:        Name:            get_func_addr70# CHECK-NEXT:      - Index:           471# CHECK-NEXT:        Name:            _start72# CHECK-NEXT:    GlobalNames:73# CHECK-NEXT:      - Index:           074# CHECK-NEXT:        Name:            undef_data75# CHECK-NEXT:      - Index:           176# CHECK-NEXT:        Name:            undef77# CHECK-NEXT:      - Index:           278# CHECK-NEXT:        Name:            data_external79# CHECK-NEXT:      - Index:           380# CHECK-NEXT:        Name:            __stack_pointer81# CHECK-NEXT:    DataSegmentNames:82# CHECK-NEXT:      - Index:           083# CHECK-NEXT:        Name:            .data84# CHECK-NEXT:...85