| ; RUN: llc < %s --mtriple=wasm32-unknown-unknown -filetype=obj -wasm-keep-registers -o - | obj2yaml - | FileCheck %s |
| |
| @llvm.used = appending global [5 x ptr] [ |
| ptr @foo, ptr @gv0, ptr @gv1, ptr @gv2, ptr @gv3 |
| ], section "llvm.metadata" |
| |
| define i32 @foo() { |
| entry: |
| ret i32 0 |
| } |
| |
| ; externally visible GV has NO_STRIP/RETAIN in both symtab entry and segment info |
| @gv0 = global i32 42 |
| ; internal GV has NO_STRIP/RETAIN in both symtab entry and segment info |
| @gv1 = internal global i32 41 |
| ; private GV has RETAIN in segment info only (no symtab entry) |
| @gv2 = private global i32 40 |
| ; explicit section names |
| @gv3 = global i32 39, section "ddd.hello" |
| @gv4.not.used = global i64 38, section "ddd.hello" |
| |
| ; CHECK: SymbolTable: |
| ; CHECK-NEXT: - Index: 0 |
| ; CHECK-NEXT: Kind: FUNCTION |
| ; CHECK-NEXT: Name: foo |
| ; CHECK-NEXT: Flags: [ NO_STRIP ] |
| ; CHECK-NEXT: Function: 0 |
| ; CHECK-NEXT: - Index: 1 |
| ; CHECK-NEXT: Kind: DATA |
| ; CHECK-NEXT: Name: gv0 |
| ; CHECK-NEXT: Flags: [ NO_STRIP ] |
| ; CHECK-NEXT: Segment: 0 |
| ; CHECK-NEXT: Size: 4 |
| ; CHECK-NEXT: - Index: 2 |
| ; CHECK-NEXT: Kind: DATA |
| ; CHECK-NEXT: Name: gv1 |
| ; CHECK-NEXT: Flags: [ BINDING_LOCAL, NO_STRIP ] |
| ; CHECK-NEXT: Segment: 1 |
| ; CHECK-NEXT: Size: 4 |
| ; CHECK-NEXT: - Index: 3 |
| ; CHECK-NEXT: Kind: DATA |
| ; CHECK-NEXT: Name: gv3 |
| ; CHECK-NEXT: Flags: [ NO_STRIP ] |
| ; CHECK-NEXT: Segment: 3 |
| ; CHECK-NEXT: Size: 4 |
| ; CHECK-NEXT: - Index: 4 |
| ; CHECK-NEXT: Kind: DATA |
| ; CHECK-NEXT: Name: gv4.not.used |
| ; CHECK-NEXT: Flags: [ ] |
| ; CHECK-NEXT: Segment: 3 |
| ; CHECK-NEXT: Offset: 8 |
| ; CHECK-NEXT: Size: 8 |
| ; CHECK-NEXT: - Index: 5 |
| ; CHECK-NEXT: Kind: TABLE |
| ; CHECK-NEXT: Name: __indirect_function_table |
| ; CHECK-NEXT: Flags: [ UNDEFINED, NO_STRIP ] |
| ; CHECK-NEXT: Table: 0 |
| ; CHECK-NEXT: SegmentInfo: |
| ; CHECK-NEXT: - Index: 0 |
| ; CHECK-NEXT: Name: .data.gv0 |
| ; CHECK-NEXT: Alignment: 2 |
| ; CHECK-NEXT: Flags: [ RETAIN ] |
| ; CHECK-NEXT: - Index: 1 |
| ; CHECK-NEXT: Name: .data.gv1 |
| ; CHECK-NEXT: Alignment: 2 |
| ; CHECK-NEXT: Flags: [ RETAIN ] |
| ; CHECK-NEXT: - Index: 2 |
| ; CHECK-NEXT: Name: .data..Lgv2 |
| ; CHECK-NEXT: Alignment: 2 |
| ; CHECK-NEXT: Flags: [ RETAIN ] |
| ; CHECK-NEXT: - Index: 3 |
| ; CHECK-NEXT: Name: ddd.hello |
| ; CHECK-NEXT: Alignment: 3 |
| ; CHECK-NEXT: Flags: [ RETAIN ] |