https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122135
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
GCC 5.5.0 produced:
```
<source>:8:15: error: default argument for template parameter for class
enclosing 'struct outer::inner<T>'
struct outer::inner{};
^
```
I suspect when we started to accepting:
```
struct outer
{
template <typename T>
struct inner;
};
template <typename T = long>
struct outer::inner{};
```
Is when we started to accepting this one too. Like there is a missing check if
both had default template arguments.