1*67e74705SXin Li // Make sure that diagnostics serialization does not crash with a really long diagnostic text.
2*67e74705SXin Li
3*67e74705SXin Li // RUN: not %clang_cc1 -std=c++11 %s -serialize-diagnostic-file %t.dia
4*67e74705SXin Li // RUN: c-index-test -read-diagnostics %t.dia 2>&1 | FileCheck %s
5*67e74705SXin Li
6*67e74705SXin Li typedef class AReallyLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongName {} alias;
7*67e74705SXin Li
8*67e74705SXin Li template <int N, typename ...T>
9*67e74705SXin Li struct MyTS {
10*67e74705SXin Li typedef MyTS<N-1, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
11*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
12*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
13*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
14*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
15*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
16*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
17*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
18*67e74705SXin Li alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, T...> type;
callmeMyTS19*67e74705SXin Li static type callme() {
20*67e74705SXin Li return type::callme();
21*67e74705SXin Li }
22*67e74705SXin Li };
23*67e74705SXin Li
24*67e74705SXin Li template <typename ...T>
25*67e74705SXin Li struct MyTS<0, T...> {};
26*67e74705SXin Li
foo()27*67e74705SXin Li void foo() {
28*67e74705SXin Li // CHECK: [[@LINE+1]]:20: note: in instantiation of member function
29*67e74705SXin Li int e = MyTS<2>::callme();
30*67e74705SXin Li }
31