blob: 09cf2a63707288ff6ae98ca1953c5aa607c9f918 [file] [log] [blame]
George Burgess IV2fd1ff82017-08-09 06:07:08 +00001// RUN: %clang_cc1 -std=c++11 -triple i686-linux-gnu %s -o /dev/null -S -emit-llvm
George Burgess IV35cb4f82017-08-09 04:12:17 +00002//
3// This test's failure mode is running ~forever. (For some value of "forever"
4// that's greater than 25 minutes on my machine)
5
6template <typename... Ts>
7struct Foo {
8 template <typename... T>
9 static void ignore() {}
10 Foo() { ignore<Ts...>(); }
11};
12
13struct Base {
14 Base();
15 ~Base();
16};
17
18#define STAMP(thiz, prev) using thiz = Foo< \
19 prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, \
20 prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, \
21 prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, prev, prev \
22 >;
23STAMP(A, Base);
24STAMP(B, A);
25STAMP(C, B);
26STAMP(D, C);
27STAMP(E, D);
28STAMP(F, E);
29STAMP(G, F);
30STAMP(H, G);
31STAMP(I, H);
32STAMP(J, I);
33STAMP(K, J);
34STAMP(L, K);
35STAMP(M, L);
36STAMP(N, M);
37STAMP(O, N);
38STAMP(P, O);
39STAMP(Q, P);
40
41int main() { Q q; }