1*c45975cbSZequan Wu // clang-format off
2*c45975cbSZequan Wu // REQUIRES: system-windows
3*c45975cbSZequan Wu 
4*c45975cbSZequan Wu // RUN: %build -o %t.exe -- %s
5*c45975cbSZequan Wu // RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \
6*c45975cbSZequan Wu // RUN:     %p/Inputs/inline_sites_live.lldbinit 2>&1 | FileCheck %s
7*c45975cbSZequan Wu 
use(int)8*c45975cbSZequan Wu void use(int) {}
9*c45975cbSZequan Wu 
bar(int param)10*c45975cbSZequan Wu void __attribute__((always_inline)) bar(int param) {
11*c45975cbSZequan Wu   use(param); // BP_bar
12*c45975cbSZequan Wu }
13*c45975cbSZequan Wu 
foo(int param)14*c45975cbSZequan Wu void __attribute__((always_inline)) foo(int param) {
15*c45975cbSZequan Wu   int local = param+1;
16*c45975cbSZequan Wu   bar(local);
17*c45975cbSZequan Wu   use(param);
18*c45975cbSZequan Wu   use(local); // BP_foo
19*c45975cbSZequan Wu }
20*c45975cbSZequan Wu 
main(int argc,char ** argv)21*c45975cbSZequan Wu int main(int argc, char** argv) {
22*c45975cbSZequan Wu   foo(argc);
23*c45975cbSZequan Wu }
24*c45975cbSZequan Wu 
25*c45975cbSZequan Wu // CHECK:      * thread #1, stop reason = breakpoint 1
26*c45975cbSZequan Wu // CHECK-NEXT:    frame #0: {{.*}}`main [inlined] bar(param=2)
27*c45975cbSZequan Wu // CHECK:      (lldb) p param
28*c45975cbSZequan Wu // CHECK-NEXT: (int) $0 = 2
29*c45975cbSZequan Wu // CHECK:      * thread #1, stop reason = breakpoint 2
30*c45975cbSZequan Wu // CHECK-NEXT:    frame #0: {{.*}}`main [inlined] foo(param=1)
31*c45975cbSZequan Wu // CHECK:      (lldb) p param
32*c45975cbSZequan Wu // CHECK-NEXT: (int) $1 = 1
33*c45975cbSZequan Wu // CHECK-NEXT: (lldb) p local
34*c45975cbSZequan Wu // CHECK-NEXT: (int) $2 = 2
35