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