https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120373
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- This is valid C++ (except for the missing return statements) and the symbols in the output match what EDG does. There can be exactly one operator with each name defined as extern "C" (because their mangled names do not include the types, so cannot be overloaded). So it's pretty useless, but it's valid. Clang seems to ignore the extern "C" and mangle them anyway: $ nm --defined-only op.o 0000000000000010 T _Zeq1fS_ 0000000000000000 T _Zls1fS_ 0000000000000020 T _Zpp1fi