1*a6487249SZequan Wu; RUN: llvm-pdbutil yaml2pdb %p/Inputs/symbol-offset.yaml --pdb=%t.pdb 2*a6487249SZequan Wu 3*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=80 %t.pdb \ 4*a6487249SZequan Wu; RUN: | FileCheck --check-prefix=OFFSET %s 5*a6487249SZequan Wu 6*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=4 --show-parents \ 7*a6487249SZequan Wu; RUN: %t.pdb | FileCheck --check-prefix=SHOW-PARENT1 %s 8*a6487249SZequan Wu 9*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=80 --show-parents \ 10*a6487249SZequan Wu; RUN: %t.pdb | FileCheck --check-prefix=SHOW-PARENT2 %s 11*a6487249SZequan Wu 12*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=308 --show-parents \ 13*a6487249SZequan Wu; RUN: %t.pdb | FileCheck --check-prefix=SHOW-PARENT3 %s 14*a6487249SZequan Wu 15*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=260 --show-parents \ 16*a6487249SZequan Wu; RUN: --parent-recurse-depth=1 %t.pdb \ 17*a6487249SZequan Wu; RUN: | FileCheck --check-prefix=SHOW-PARENT-DEPTH1 %s 18*a6487249SZequan Wu 19*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=260 --show-parents \ 20*a6487249SZequan Wu; RUN: --parent-recurse-depth=2 %t.pdb \ 21*a6487249SZequan Wu; RUN: | FileCheck --check-prefix=SHOW-PARENT-DEPTH2 %s 22*a6487249SZequan Wu 23*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=416 --show-children\ 24*a6487249SZequan Wu; RUN: %t.pdb | FileCheck --check-prefix=SHOW-CHILDREN1 %s 25*a6487249SZequan Wu 26*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=292 --show-children\ 27*a6487249SZequan Wu; RUN: %t.pdb | FileCheck --check-prefix=SHOW-CHILDREN2 %s 28*a6487249SZequan Wu 29*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=4 --show-children \ 30*a6487249SZequan Wu; RUN: --children-recurse-depth=1 %t.pdb \ 31*a6487249SZequan Wu; RUN: | FileCheck --check-prefix=SHOW-CHILDREN-DEPTH1 %s 32*a6487249SZequan Wu 33*a6487249SZequan Wu; RUN: llvm-pdbutil dump --symbols --modi=0 --symbol-offset=292 --show-children\ 34*a6487249SZequan Wu; RUN: --children-recurse-depth=2 %t.pdb \ 35*a6487249SZequan Wu; RUN: | FileCheck --check-prefix=SHOW-CHILDREN-DEPTH2 %s 36*a6487249SZequan Wu 37*a6487249SZequan WuThe pdb file is generate from following cpp file and use llvm-pdbutil's pdb2yaml 38*a6487249SZequan Wufunctionality to convert pdb to yaml. Unrelated information was removed from the 39*a6487249SZequan Wuyaml test file. 40*a6487249SZequan Wu; [[clang::always_inline]] int func1(int x) { 41*a6487249SZequan Wu; return x * 2; 42*a6487249SZequan Wu; } 43*a6487249SZequan Wu; 44*a6487249SZequan Wu; [[clang::always_inline]] int func2(int x, int y) { 45*a6487249SZequan Wu; return func1(x + y); 46*a6487249SZequan Wu; } 47*a6487249SZequan Wu; 48*a6487249SZequan Wu; [[clang::always_inline]] int func3(int x, int y, int z) { 49*a6487249SZequan Wu; y += func1(x); 50*a6487249SZequan Wu; x += func2(y, z); 51*a6487249SZequan Wu; return x + func1(x); 52*a6487249SZequan Wu; } 53*a6487249SZequan Wu; 54*a6487249SZequan Wu; int main(int argc, char** argv) { 55*a6487249SZequan Wu; return func3(argc, 1, 2); 56*a6487249SZequan Wu; } 57*a6487249SZequan Wu 58*a6487249SZequan Wu 59*a6487249SZequan WuOFFSET: 80 | S_LOCAL [size = 16] `argc` 60*a6487249SZequan WuOFFSET-NEXT: type=0x0074 (int), flags = param 61*a6487249SZequan Wu 62*a6487249SZequan WuSHOW-PARENT1: 4 | S_GPROC32 [size = 44] `main` 63*a6487249SZequan WuSHOW-PARENT1-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 137 64*a6487249SZequan WuSHOW-PARENT1-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none 65*a6487249SZequan Wu 66*a6487249SZequan WuSHOW-PARENT2: 4 | S_GPROC32 [size = 44] `main` 67*a6487249SZequan WuSHOW-PARENT2-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 137 68*a6487249SZequan WuSHOW-PARENT2-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none 69*a6487249SZequan WuSHOW-PARENT2-NEXT: 80 | S_LOCAL [size = 16] `argc` 70*a6487249SZequan WuSHOW-PARENT2-NEXT: type=0x0074 (int), flags = param 71*a6487249SZequan WuSHOW-PARENT2-NEXT: 468 | S_END [size = 4] 72*a6487249SZequan Wu 73*a6487249SZequan WuSHOW-PARENT3: 4 | S_GPROC32 [size = 44] `main` 74*a6487249SZequan WuSHOW-PARENT3-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 137 75*a6487249SZequan WuSHOW-PARENT3-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none 76*a6487249SZequan WuSHOW-PARENT3-NEXT: 144 | S_INLINESITE [size = 16] 77*a6487249SZequan WuSHOW-PARENT3-NEXT: inlinee = 0x1002 (<unknown UDT>), parent = 4, end = 464 78*a6487249SZequan WuSHOW-PARENT3-NEXT: 292 | S_INLINESITE [size = 16] 79*a6487249SZequan WuSHOW-PARENT3-NEXT: inlinee = 0x1001 (<unknown UDT>), parent = 144, end = 412 80*a6487249SZequan WuSHOW-PARENT3-NEXT: 308 | S_LOCAL [size = 12] `x` 81*a6487249SZequan WuSHOW-PARENT3-NEXT: type=0x0074 (int), flags = param 82*a6487249SZequan WuSHOW-PARENT3-NEXT: 412 | S_INLINESITE_END [size = 4] 83*a6487249SZequan WuSHOW-PARENT3-NEXT: 464 | S_INLINESITE_END [size = 4] 84*a6487249SZequan WuSHOW-PARENT3-NEXT: 468 | S_END [size = 4] 85*a6487249SZequan Wu 86*a6487249SZequan Wu 87*a6487249SZequan WuSHOW-PARENT-DEPTH1: 244 | S_INLINESITE [size = 16] 88*a6487249SZequan WuSHOW-PARENT-DEPTH1-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 144, end = 288 89*a6487249SZequan WuSHOW-PARENT-DEPTH1-NEXT: 260 | S_LOCAL [size = 12] `x` 90*a6487249SZequan WuSHOW-PARENT-DEPTH1-NEXT: type=0x0074 (int), flags = param 91*a6487249SZequan WuSHOW-PARENT-DEPTH1-NEXT: 288 | S_INLINESITE_END [size = 4] 92*a6487249SZequan Wu 93*a6487249SZequan WuSHOW-PARENT-DEPTH2: 144 | S_INLINESITE [size = 16] 94*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: inlinee = 0x1002 (<unknown UDT>), parent = 4, end = 464 95*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: 244 | S_INLINESITE [size = 16] 96*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 144, end = 288 97*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: 260 | S_LOCAL [size = 12] `x` 98*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: type=0x0074 (int), flags = param 99*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: 288 | S_INLINESITE_END [size = 4] 100*a6487249SZequan WuSHOW-PARENT-DEPTH2-NEXT: 464 | S_INLINESITE_END [size = 4] 101*a6487249SZequan Wu 102*a6487249SZequan WuSHOW-CHILDREN1: 416 | S_INLINESITE [size = 16] 103*a6487249SZequan WuSHOW-CHILDREN1-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 144, end = 460 104*a6487249SZequan WuSHOW-CHILDREN1-NEXT: 432 | S_LOCAL [size = 12] `x` 105*a6487249SZequan WuSHOW-CHILDREN1-NEXT: type=0x0074 (int), flags = param 106*a6487249SZequan WuSHOW-CHILDREN1-NEXT: 444 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 107*a6487249SZequan WuSHOW-CHILDREN1-NEXT: offset = 36, range = [0001:0299,+7) 108*a6487249SZequan WuSHOW-CHILDREN1-NEXT: gaps = [] 109*a6487249SZequan WuSHOW-CHILDREN1-NEXT: 460 | S_INLINESITE_END [size = 4] 110*a6487249SZequan Wu 111*a6487249SZequan WuSHOW-CHILDREN2: 292 | S_INLINESITE [size = 16] 112*a6487249SZequan WuSHOW-CHILDREN2-NEXT: inlinee = 0x1001 (<unknown UDT>), parent = 144, end = 412 113*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 308 | S_LOCAL [size = 12] `x` 114*a6487249SZequan WuSHOW-CHILDREN2-NEXT: type=0x0074 (int), flags = param 115*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 320 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 116*a6487249SZequan WuSHOW-CHILDREN2-NEXT: offset = 44, range = [0001:0260,+19) 117*a6487249SZequan WuSHOW-CHILDREN2-NEXT: gaps = [] 118*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 336 | S_LOCAL [size = 12] `y` 119*a6487249SZequan WuSHOW-CHILDREN2-NEXT: type=0x0074 (int), flags = param 120*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 348 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 121*a6487249SZequan WuSHOW-CHILDREN2-NEXT: offset = 48, range = [0001:0260,+19) 122*a6487249SZequan WuSHOW-CHILDREN2-NEXT: gaps = [] 123*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 364 | S_INLINESITE [size = 16] 124*a6487249SZequan WuSHOW-CHILDREN2-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 292, end = 408 125*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 380 | S_LOCAL [size = 12] `x` 126*a6487249SZequan WuSHOW-CHILDREN2-NEXT: type=0x0074 (int), flags = param 127*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 392 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 128*a6487249SZequan WuSHOW-CHILDREN2-NEXT: offset = 52, range = [0001:0272,+7) 129*a6487249SZequan WuSHOW-CHILDREN2-NEXT: gaps = [] 130*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 408 | S_INLINESITE_END [size = 4] 131*a6487249SZequan WuSHOW-CHILDREN2-NEXT: 412 | S_INLINESITE_END [size = 4] 132*a6487249SZequan Wu 133*a6487249SZequan WuSHOW-CHILDREN-DEPTH1: 4 | S_GPROC32 [size = 44] `main` 134*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: parent = 0, end = 468, addr = 0001:0176, code size = 137 135*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: type = `0x1008 (<unknown UDT>)`, debug start = 0, debug end = 0, flags = none 136*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 48 | S_FRAMEPROC [size = 32] 137*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: size = 56, padding size = 0, offset to padding = 0 138*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: bytes of callee saved registers = 0, exception handler addr = 0000:0000 139*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: local fp reg = NONE, param fp reg = NONE 140*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: flags = none 141*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 80 | S_LOCAL [size = 16] `argc` 142*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: type=0x0074 (int), flags = param 143*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 96 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 144*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: offset = 4, range = [0001:0197,+116) 145*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: gaps = [] 146*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 112 | S_LOCAL [size = 16] `argv` 147*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: type=0x1006 (<unknown UDT>), flags = param 148*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 128 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 149*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: offset = 8, range = [0001:0197,+116) 150*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: gaps = [] 151*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 144 | S_INLINESITE [size = 16] 152*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: inlinee = 0x1002 (<unknown UDT>), parent = 4, end = 464 153*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 464 | S_INLINESITE_END [size = 4] 154*a6487249SZequan WuSHOW-CHILDREN-DEPTH1-NEXT: 468 | S_END [size = 4] 155*a6487249SZequan Wu 156*a6487249SZequan WuSHOW-CHILDREN-DEPTH2: 292 | S_INLINESITE [size = 16] 157*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: inlinee = 0x1001 (<unknown UDT>), parent = 144, end = 412 158*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 308 | S_LOCAL [size = 12] `x` 159*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: type=0x0074 (int), flags = param 160*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 320 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 161*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: offset = 44, range = [0001:0260,+19) 162*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: gaps = [] 163*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 336 | S_LOCAL [size = 12] `y` 164*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: type=0x0074 (int), flags = param 165*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 348 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 166*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: offset = 48, range = [0001:0260,+19) 167*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: gaps = [] 168*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 364 | S_INLINESITE [size = 16] 169*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: inlinee = 0x1000 (<unknown UDT>), parent = 292, end = 408 170*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 380 | S_LOCAL [size = 12] `x` 171*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: type=0x0074 (int), flags = param 172*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 392 | S_DEFRANGE_FRAMEPOINTER_REL [size = 16] 173*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: offset = 52, range = [0001:0272,+7) 174*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: gaps = [] 175*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 408 | S_INLINESITE_END [size = 4] 176*a6487249SZequan WuSHOW-CHILDREN-DEPTH2-NEXT: 412 | S_INLINESITE_END [size = 4]