https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94944
--- Comment #1 from eracpp <eracpp at eml dot cc> --- The example may be simplified further by removing the function parameters: ---- template <typename T> struct B { void foo() {} }; template <typename T> struct D : B<T> { void foo() noexcept(noexcept(B<T>::foo())) {} }; template struct D<int>; ---- Which still yields the same error: ---- error: cannot call member function 'void B<T>::foo() [with T = int]' without object 8 | void foo() noexcept(noexcept(B<T>::foo())) {} | ---- And the `this->B<T>::foo()` workaround still applies.