https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118507
Bug ID: 118507 Summary: Erroneous 'invalid use of qualified-name' for member function defined with 'typedef' in a friend declaration Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rush102333 at gmail dot com Target Milestone: --- The following code fails in the process of name lookup: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ typedef void X(); class a { public: X x; }; class b { friend X a::x; }; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GCC rejects it with: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <source>:10:13: error: invalid use of qualified-name 'a::x' 10 | friend X a::x; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Note that clang, MSVC and EDG can normally accept it: https://godbolt.org/z/WvKaKbM33