# XFAIL: target-windows

# Test the ${function.template-arguments} frame-format variable.

# RUN: split-file %s %t
# RUN: %clangxx_host -g -gdwarf %t/main.cpp -o %t.out
# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \
# RUN:       | FileCheck %s
#
# RUN: %clangxx_host -O0 %t/main.cpp -o %t-nodebug.out
# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \
# RUN:       | FileCheck %s

#--- main.cpp
template<typename K>
struct Foo {
    template<typename T>
    void func() {}
};

template<typename T, template <typename> class K,
         typename M>
int foo() {
    Foo<int>{}.func<T>();
    return 5;
}

int bar() {
  return foo<int, Foo, Foo<float>>();
}

int main() { return bar(); }

#--- commands.input
settings set -f frame-format "custom-frame '${function.template-arguments}'\n"
break set -n func

run
bt

# CHECK: custom-frame '<int>'
# CHECK: custom-frame '<int, Foo, Foo<float>>'
# CHECK: custom-frame ''
