https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93585
--- Comment #4 from Norman Goldstein <normvcr at telus dot net> --- I've received an explanation from bug-gnu-ut...@gnu.org. The C++11 standard 3.5/10 states that "... the types specified by all declarations referring to a given variable or function shall be identical ...", so no diagnostic is required. OK, so the two supplied source files do not constitute a proper C++ program, and it is outside the purview of the C++ compiler to catch such errors. This makes sense. Would it be a reasonable option to have the linker check for such mismatches? The name mangling must be dropped at some point in the link process, for the two symbols to resolve each other at link time.