https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94117
Nathan Sidwell <nathan at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |nathan at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #6 from Nathan Sidwell <nathan at gcc dot gnu.org> --- Ah, I understand what is happening. We don't defer parsing of the noexcept specified of friend functions. That leads us to construct a base-link expr whose type contains the deferred parse exception specification of the *static* member function -- there being only one, it doesn't get unknown type. In processing the deferred exception specification of that fn, we don't fixup all the type variants that might have been created. There's a restriction on friend declarations that contain default args. This is the same problem that is trying to avoid.