https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111788
--- Comment #4 from Giuliano Procida <gprocida at google dot com> --- Also worth noting that while Clang gives virtual table entries (for struct X) this type in DWARF: int(** _vptr.X)(...) GCC gives them this type: int(** _vptr$X)() The different member names are an unfortunate inconsistency. Clang is strictly better on the typing, stating that the virtual functions take an unknown number of arguments. Perhaps even better would have been if the first argument had been specified as type X*. In any case, this is likely all cosmetic as debuggers have all the special knowledge needed.