https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116020
--- Comment #1 from Fedor Chelnokov <fchelnokov at gmail dot com> --- Another problematic problem example is as follows: struct A { static void f(); }; void foo() { A::f(); //ok } void A::f(this void) {} int main() { A::f(); //error in GCC after A::f definition } Here the definition of declared no-argument member function with (this void) is accepted but makes this function no longer callable. Clang has no issue with it again. Online demo: https://gcc.godbolt.org/z/vKfzo7fe9