1 // RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited -o %t1.ll %s
2 // RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited -o %t2.ll %s
3 // RUN: diff %t1.ll %t2.ll
5 template <int N
> struct C
{
6 template <int M
> int f() {
8 return arr
[M
/2] + C
<M
/2>().template f
<M
-1>();
11 template <> template <> int C
<0>::f
<0>() { return 0; }
12 template <> template <> int C
<0>::f
<1>() { return 0; }
13 template <> template <> int C
<1>::f
<0>() { return 0; }
14 template <> template <> int C
<1>::f
<1>() { return 0; }
16 int x
= C
<0>().f
<64>();