// { dg-options "-std=c++0x" } template // { dg-error "template parameter" } struct call; template struct call // { dg-error "redeclared here" } { template struct result; template struct result { typedef X type; }; }; template // { dg-error "template parameter" } struct call2; template struct call2 // { dg-error "redeclared here" } { template struct result; template struct result { typedef X type; }; }; template class... TT> // { dg-error "template parameter" } struct call3; template class TT> struct call3 // { dg-error "redeclared here" } { template struct result; template struct result { typedef X type; }; };