c++: prvalue of array type [PR111286]
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / variadic-mangle2.C
blob596242ab8b725765cfdf16d322f097593dcff916
1 // Testcase from cxx-abi-dev.
2 // { dg-do compile { target c++11 } }
4 struct A {
5   template<int...T> using N = int[sizeof...(T)];
6   template<int...A> void f(N<A...> &);
8   template<typename...T> using M = int[sizeof...(T)];
9   template<typename...A> void g(M<A...> &);
12 template<typename ...T> using N = int[sizeof...(T)];
13 template<typename ...T> void f(N<T...> &);
14 // equivalent to template<typename ...T> void f(int(&)[sizeof...(T)])
16 void g(A a)
18   int arr[3];
19   // { dg-final { scan-assembler "_ZN1A1fIJLi1ELi2ELi3EEEEvRAsZT__i" } }
20   a.f<1,2,3>(arr);
21   // { dg-final { scan-assembler "_ZN1A1gIJiiiEEEvRAsZT__i" } }
22   a.g<int,int,int>(arr);
23   // { dg-final { scan-assembler "_Z1fIJiiiEEvRAsZT__i" } }
24   f<int,int,int>(arr);