1 // PR c++/53401 2 // { dg-do compile { target c++11 } } 3 4 template<int I> 5 struct index 6 {}; 7 recursive_impl(index<0u>)8constexpr int recursive_impl(index<0u>) 9 { 10 return 0; 11 } 12 13 template<int N> 14 constexpr auto recursive_impl(index<N>) 15 -> decltype(recursive_impl(index<N - 1>())) // { dg-error "depth" } 16 { 17 return recursive_impl(index<N - 1>()); 18 } 19 20 template<int N> 21 constexpr auto recursive() 22 -> decltype(recursive_impl(index<N>())) 23 { 24 return recursive_impl(index<N>()); 25 } 26 f(int i)27void f(int i) 28 { 29 recursive<1>(); // { dg-message "from here" } 30 } 31 32 // { dg-prune-output "compilation terminated" } 33