124 lines · plain
1# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/weak-symbol1.s -o %t1.o2# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/weak-symbol2.s -o %t2.o3# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o4# RUN: wasm-ld --export-dynamic -o %t.wasm %t.o %t1.o %t2.o5# RUN: obj2yaml %t.wasm | FileCheck %s6 7.functype weakFn () -> (i32)8 9.globl _start10_start:11 .functype _start () -> ()12 call weakFn13 drop14 end_function15 16.size weakGlobal, 417 18# CHECK: --- !WASM19# CHECK-NEXT: FileHeader:20# CHECK-NEXT: Version: 0x121# CHECK-NEXT: Sections:22# CHECK-NEXT: - Type: TYPE23# CHECK-NEXT: Signatures:24# CHECK-NEXT: - Index: 025# CHECK-NEXT: ParamTypes: []26# CHECK-NEXT: ReturnTypes: []27# CHECK-NEXT: - Index: 128# CHECK-NEXT: ParamTypes: []29# CHECK-NEXT: ReturnTypes:30# CHECK-NEXT: - I3231# CHECK-NEXT: - Type: FUNCTION32# CHECK-NEXT: FunctionTypes: [ 0, 1, 1, 1 ]33# CHECK-NEXT: - Type: TABLE34# CHECK-NEXT: Tables:35# CHECK-NEXT: - Index: 036# CHECK-NEXT: ElemType: FUNCREF37# CHECK-NEXT: Limits:38# CHECK-NEXT: Flags: [ HAS_MAX ]39# CHECK-NEXT: Minimum: 0x240# CHECK-NEXT: Maximum: 0x241# CHECK-NEXT: - Type: MEMORY42# CHECK-NEXT: Memories:43# CHECK-NEXT: - Minimum: 0x244# CHECK-NEXT: - Type: GLOBAL45# CHECK-NEXT: Globals:46# CHECK-NEXT: - Index: 047# CHECK-NEXT: Type: I3248# CHECK-NEXT: Mutable: true49# CHECK-NEXT: InitExpr:50# CHECK-NEXT: Opcode: I32_CONST51# CHECK-NEXT: Value: 6553652# CHECK-NEXT: - Index: 153# CHECK-NEXT: Type: I3254# CHECK-NEXT: Mutable: false55# CHECK-NEXT: InitExpr:56# CHECK-NEXT: Opcode: I32_CONST57# CHECK-NEXT: Value: 6553658# CHECK-NEXT: - Type: EXPORT59# CHECK-NEXT: Exports:60# CHECK-NEXT: - Name: memory61# CHECK-NEXT: Kind: MEMORY62# CHECK-NEXT: Index: 063# CHECK-NEXT: - Name: _start64# CHECK-NEXT: Kind: FUNCTION65# CHECK-NEXT: Index: 066# CHECK-NEXT: - Name: weakFn67# CHECK-NEXT: Kind: FUNCTION68# CHECK-NEXT: Index: 169# CHECK-NEXT: - Name: exportWeak170# CHECK-NEXT: Kind: FUNCTION71# CHECK-NEXT: Index: 272# CHECK-NEXT: - Name: weakGlobal73# CHECK-NEXT: Kind: GLOBAL74# CHECK-NEXT: Index: 175# CHECK-NEXT: - Name: exportWeak276# CHECK-NEXT: Kind: FUNCTION77# CHECK-NEXT: Index: 378# CHECK-NEXT: - Type: ELEM79# CHECK-NEXT: Segments:80# CHECK-NEXT: - Offset:81# CHECK-NEXT: Opcode: I32_CONST82# CHECK-NEXT: Value: 183# CHECK-NEXT: Functions: [ 1 ]84# CHECK-NEXT: - Type: CODE85# CHECK-NEXT: Functions:86# CHECK-NEXT: - Index: 087# CHECK-NEXT: Locals:88# CHECK-NEXT: Body: 1081808080001A0B89# CHECK-NEXT: - Index: 190# CHECK-NEXT: Locals:91# CHECK-NEXT: Body: 41010B92# CHECK-NEXT: - Index: 293# CHECK-NEXT: Locals:94# CHECK-NEXT: Body: 4181808080000B95# CHECK-NEXT: - Index: 396# CHECK-NEXT: Locals:97# CHECK-NEXT: Body: 4181808080000B98# CHECK-NEXT: - Type: DATA99# CHECK-NEXT: Segments:100# CHECK-NEXT: - SectionOffset: 8101# CHECK-NEXT: InitFlags: 0102# CHECK-NEXT: Offset:103# CHECK-NEXT: Opcode: I32_CONST104# CHECK-NEXT: Value: 65536105# CHECK-NEXT: Content: '01000000'106# CHECK-NEXT: - Type: CUSTOM107# CHECK-NEXT: Name: name108# CHECK-NEXT: FunctionNames:109# CHECK-NEXT: - Index: 0110# CHECK-NEXT: Name: _start111# CHECK-NEXT: - Index: 1112# CHECK-NEXT: Name: weakFn113# CHECK-NEXT: - Index: 2114# CHECK-NEXT: Name: exportWeak1115# CHECK-NEXT: - Index: 3116# CHECK-NEXT: Name: exportWeak2117# CHECK-NEXT: GlobalNames:118# CHECK-NEXT: - Index: 0119# CHECK-NEXT: Name: __stack_pointer120# CHECK-NEXT: DataSegmentNames:121# CHECK-NEXT: - Index: 0122# CHECK-NEXT: Name: .data123# CHECK-NEXT: ...124