1; REQUIRES: webassembly-registered-target 2 3; Test case 1 - General options 4 5; test.cpp 6; 1 using INTPTR = const int *; 7; 2 int foo(INTPTR ParamPtr, unsigned ParamUnsigned, bool ParamBool) { 8; 3 if (ParamBool) { 9; 4 typedef int INTEGER; 10; 5 const INTEGER CONSTANT = 7; 11; 6 return CONSTANT; 12; 7 } 13; 8 return ParamUnsigned; 14; 9 } 15 16; Select logical elements. 17; The following prints all 'instructions', 'symbols' and 'types' that 18; contain 'BLOCK' or '.store' in their names or types, using a tab layout 19; and given the number of matches. 20 21; RUN: llvm-mc -arch=wasm32 -filetype=obj \ 22; RUN: %p/Inputs/test-clang.s -o %t.test-clang.o 23 24; RUN: llvm-debuginfo-analyzer --attribute=level \ 25; RUN: --select-nocase --select-regex \ 26; RUN: --select=BLOCK --select=.store \ 27; RUN: --report=list \ 28; RUN: --print=symbols,types,instructions,summary \ 29; RUN: %t.test-clang.o 2>&1 | \ 30; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s 31 32; ONE: Logical View: 33; ONE-NEXT: [000] {File} '{{.*}}test-clang.o' 34; ONE-EMPTY: 35; ONE-NEXT: [001] {CompileUnit} 'test.cpp' 36; ONE-NEXT: [003] {Code} 'block' 37; ONE-NEXT: [003] {Code} 'block' 38; ONE-NEXT: [004] {Code} 'i32.store 12' 39; ONE-NEXT: [003] {Code} 'i32.store 20' 40; ONE-NEXT: [003] {Code} 'i32.store 24' 41; ONE-NEXT: [004] {Code} 'i32.store 28' 42; ONE-NEXT: [003] {Code} 'i32.store 28' 43; ONE-NEXT: [003] {Code} 'i32.store8 19' 44; ONE-EMPTY: 45; ONE-NEXT: ----------------------------- 46; ONE-NEXT: Element Total Printed 47; ONE-NEXT: ----------------------------- 48; ONE-NEXT: Scopes 3 0 49; ONE-NEXT: Symbols 4 0 50; ONE-NEXT: Types 2 0 51; ONE-NEXT: Lines 62 8 52; ONE-NEXT: ----------------------------- 53; ONE-NEXT: Total 71 8 54 55; RUN: llvm-debuginfo-analyzer --attribute=level \ 56; RUN: --select-regex --select-nocase \ 57; RUN: --select=INTe \ 58; RUN: --report=list \ 59; RUN: --print=symbols,types \ 60; RUN: %t.test-clang.o \ 61; RUN: %p/../DWARF/Inputs/test-dwarf-gcc.o 2>&1 | \ 62; RUN: FileCheck --strict-whitespace -check-prefix=TWO %s 63 64; TWO: Logical View: 65; TWO-NEXT: [000] {File} '{{.*}}test-clang.o' 66; TWO-EMPTY: 67; TWO-NEXT: [001] {CompileUnit} 'test.cpp' 68; TWO-NEXT: [003] 4 {TypeAlias} 'INTEGER' -> 'int' 69; TWO-NEXT: [004] 5 {Variable} 'CONSTANT' -> 'const INTEGER' 70; TWO-EMPTY: 71; TWO-NEXT: Logical View: 72; TWO-NEXT: [000] {File} 'test-dwarf-gcc.o' 73; TWO-EMPTY: 74; TWO-NEXT: [001] {CompileUnit} 'test.cpp' 75; TWO-NEXT: [004] 4 {TypeAlias} 'INTEGER' -> 'int' 76; TWO-NEXT: [004] 5 {Variable} 'CONSTANT' -> 'const INTEGER' 77