// PR c++/31434 | |
// { dg-do run { target c++11 } } | |
extern "C" void abort (); | |
template<typename... T> inline int foo (const T...) { return 1; } | |
template<typename... T> inline int foo (const T *...) { return 2; } | |
void | |
bar (int *a) | |
{ | |
a[0] = foo (0); | |
a[1] = foo (*a); | |
a[2] = foo<int> (a); | |
a[3] = foo<int> (2, 3, 4, 5); | |
a[4] = foo<int> (a, a + 1, a + 2); | |
} | |
int | |
main () | |
{ | |
int a[5]; | |
bar (a); | |
if (a[0] != 1 || a[1] != 1 || a[2] != 2 || a[3] != 1 || a[4] != 2) | |
abort (); | |
return 0; | |
} |