https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122132
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So I filed PR 122135 for the accepts invalid since it is a regression.
Though I suspect the problem for rejects valid is same. the default argument is
being losted (not merged correctly).
Because this works:
```
struct outer
{
template <typename T>
struct inner;
};
template <typename T = long>
struct outer::inner
{
inner(int i) { }
};
int main()
{
outer::inner t(7);
return 0;
}
```
And also just using `outer::inner<>` also works. So there must be some merging
going incorrectly.