https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82316
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- extern "C" just means the linkage and not actual C code. This is true with other differences between C and C++ like auto and typedef of void types and arguments.