http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2316
--- Comment #50 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #49) > large pieces of my patch as nonsense). Fixing this particular issue should > not be too hard, there must be a place in the compiler that merges a number > of properties from the early declaration into the definition, and we need to > add extern "C" to that list. It's not exactly a single place. For C, in c/c-decl.c, we got duplicate_decls, which uses merge_decls. For C++, in cp/decl.c, we got another function called duplicate_decls.