http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46151
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> 2010-10-23 19:52:54 UTC --- The issue comes when we use a versioned type as a member: # mine.h #include <string> struct A { string s; }; void f (A& a); Namespace versioning won't affect the mangled name of f, so if the definition of f and a call to f use different versions of string, we'll get a binary incompatibility that doesn't show up as a link error.