http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49722
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-07-12 19:41:15 UTC --- extern "C" does not mean compile this code as C but rather it means the linkage of the function/variable is C rather than the standard C++ linkage.