1 // RUN: %clangxx -O0 %s -o %t && %run %t 2>&1 | FileCheck %s
3 // Test that symbolizer does not crash on frame with large function name.
5 // On Darwin LSan reports a false positive
6 // UNSUPPORTED: darwin && lsan
8 #include <sanitizer/common_interface_defs.h>
11 template <int N
> struct A
{
12 template <class T
> void RecursiveTemplateFunction(const T
&t
);
17 __attribute__((noinline
)) void A
<N
>::RecursiveTemplateFunction(const T
&) {
19 return A
<N
- 1>().RecursiveTemplateFunction(t
);
24 __attribute__((noinline
)) void A
<0>::RecursiveTemplateFunction(const T
&) {
25 __sanitizer_print_stack_trace();
29 // CHECK: {{vector<.*vector<.*vector<.*vector<.*vector<}}
30 A
<10>().RecursiveTemplateFunction(0);