aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/Shell/Settings/TestFrameFunctionInlined.test
blob: 5db34b41608500901c489b627c30362dcf8a1bc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Test the ${function.is-inlined} frame-format variable.

# Windows' link.exe does not preserve DWARF information, and we cannot get
# inlining information from PDB at this time, see:
# https://github.com/llvm/llvm-project/issues/143104
# REQUIRES: (system-windows && lld) || !system-windows

# RUN: split-file %s %t
# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out %if system-windows %{-fuse-ld=lld%}
# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \
# RUN:       | FileCheck %s

#--- main.cpp

void regular();

[[clang::always_inline]] void inlined1() {
  regular();
}
void regular() {inlined1();}
[[clang::always_inline]] void inlined2() {regular();}

int main() {
  inlined2();
  return 0;
}

#--- commands.input

settings set frame-format "frame '${function.name}{${function.is-inlined} (Inlined)}'\n"
breakpoint set -n inlined1
run
bt

# CHECK:      (lldb) bt
# CHECK:      frame '{{.*}}inlined1({{.*}}) (Inlined)'
# CHECK-NEXT: frame '{{.*}}regular({{.*}})'
# CHECK-NEXT: frame '{{.*}}inlined2({{.*}}) (Inlined)'
# CHECK-NEXT: frame 'main'