1 // { dg-options "-std=c++0x" }
2 // PR c++/33939
3 template<typename T>
4 struct refs_only;
5 
6 template<typename T>
7 struct refs_only<T &>
8 {};
9 
10 template<typename T>
11 refs_only<T> foo( T && t)
12 {
13     return refs_only<T>();
14 }
15 
16 template<typename... T>
17 struct va_refs_only;
18 
19 template<typename T>
20 struct va_refs_only<T>
21   : refs_only<T>
22 {};
23 
24 template<typename... T>
25 va_refs_only<T...> bar( T &&... t)
26 {
27     return va_refs_only<T...>();
28 }
29 
30 int main()
31 {
32     int j = 0;
33     foo(j);
34     bar(j); // error: invalid use of incomplete type 'struct refs_only<int>'
35 }
36 
37