// RUN: %clangxx -O0 %s -o %t && %run %t 2>&1 | FileCheck %s // Test that symbolizer does not crash on frame with large function name. // On Darwin LSan reports a false positive // XFAIL: darwin && lsan // FIXME: https://github.com/llvm/llvm-project/issues/55460 // On Linux its possible for symbolizer output to be truncated and to match the // check below. Remove when the underlying problem has been addressed. // UNSUPPORTED: linux #include #include template struct A { template void RecursiveTemplateFunction(const T &t); }; template template __attribute__((noinline)) void A::RecursiveTemplateFunction(const T &) { std::vector t; return A().RecursiveTemplateFunction(t); } template <> template __attribute__((noinline)) void A<0>::RecursiveTemplateFunction(const T &) { __sanitizer_print_stack_trace(); } int main() { // CHECK: {{vector<.*vector<.*vector<.*vector<.*vector<}} A<10>().RecursiveTemplateFunction(0); }