Clang Project

clang_source_code/test/CodeGenCXX/pr29160.cpp
1// RUN: %clang_cc1 -std=c++11 -triple i686-linux-gnu %s -o /dev/null -S -emit-llvm
2//
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; }
42