1; RUN: llc -filetype=obj %s -o - | llvm-readobj --symbols - | FileCheck %s 2; RUN: llc -filetype=obj %s -mattr=+reference-types -o - | llvm-readobj --symbols - | FileCheck --check-prefix=REF %s 3 4target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" 5target triple = "wasm32-unknown-unknown-wasm" 6 7@foo = alias i8, bitcast (i8* ()* @func to i8*) 8@bar = alias i8* (), i8* ()* @func 9@bar2 = alias i8* (), i8* ()* @bar 10 11define i8* @func() { 12 call i8* @bar2(); 13 ret i8* @foo; 14} 15 16; CHECK: Symbols [ 17; CHECK-NEXT: Symbol { 18; CHECK-NEXT: Name: func 19; CHECK-NEXT: Type: FUNCTION (0x0) 20; CHECK-NEXT: Flags [ (0x0) 21; CHECK-NEXT: ] 22; CHECK-NEXT: ElementIndex: 0x0 23; CHECK-NEXT: } 24; CHECK-NEXT: Symbol { 25; CHECK-NEXT: Name: bar2 26; CHECK-NEXT: Type: FUNCTION (0x0) 27; CHECK-NEXT: Flags [ (0x0) 28; CHECK-NEXT: ] 29; CHECK-NEXT: ElementIndex: 0x0 30; CHECK-NEXT: } 31; CHECK-NEXT: Symbol { 32; CHECK-NEXT: Name: foo 33; CHECK-NEXT: Type: FUNCTION (0x0) 34; CHECK-NEXT: Flags [ (0x0) 35; CHECK-NEXT: ] 36; CHECK-NEXT: ElementIndex: 0x0 37; CHECK-NEXT: } 38; CHECK-NEXT: Symbol { 39; CHECK-NEXT: Name: bar 40; CHECK-NEXT: Type: FUNCTION (0x0) 41; CHECK-NEXT: Flags [ (0x0) 42; CHECK-NEXT: ] 43; CHECK-NEXT: ElementIndex: 0x0 44; CHECK-NEXT: } 45; CHECK-NEXT: ] 46 47; REF: Symbols [ 48; REF-NEXT: Symbol { 49; REF-NEXT: Name: func 50; REF-NEXT: Type: FUNCTION (0x0) 51; REF-NEXT: Flags [ (0x0) 52; REF-NEXT: ] 53; REF-NEXT: ElementIndex: 0x0 54; REF-NEXT: } 55; REF-NEXT: Symbol { 56; REF-NEXT: Name: bar2 57; REF-NEXT: Type: FUNCTION (0x0) 58; REF-NEXT: Flags [ (0x0) 59; REF-NEXT: ] 60; REF-NEXT: ElementIndex: 0x0 61; REF-NEXT: } 62; REF-NEXT: Symbol { 63; REF-NEXT: Name: foo 64; REF-NEXT: Type: FUNCTION (0x0) 65; REF-NEXT: Flags [ (0x0) 66; REF-NEXT: ] 67; REF-NEXT: ElementIndex: 0x0 68; REF-NEXT: } 69; REF-NEXT: Symbol { 70; REF-NEXT: Name: bar 71; REF-NEXT: Type: FUNCTION (0x0) 72; REF-NEXT: Flags [ (0x0) 73; REF-NEXT: ] 74; REF-NEXT: ElementIndex: 0x0 75; REF-NEXT: } 76; REF-NEXT: Symbol { 77; REF-NEXT: Name: __indirect_function_table 78; REF-NEXT: Type: TABLE (0x5) 79; REF-NEXT: Flags [ (0x90) 80; REF-NEXT: NO_STRIP (0x80) 81; REF-NEXT: UNDEFINED (0x10) 82; REF-NEXT: ] 83; REF-NEXT: ImportModule: env 84; REF-NEXT: ElementIndex: 0x0 85; REF-NEXT: } 86; REF-NEXT: ] 87