[Bug c++/53930] bug in linker
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jul 12 09:52:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53930
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
Severity|critical |normal
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-07-12 09:51:59 UTC ---
(In reply to comment #4)
> Yes, I have two different definitions of "A" struct. But they are defined in
> different cpp files, so actually linker should not have ambiguity, which one to
> pick up, since the names of these structs for linker should be something like
> "file1.A" and "file2.A".
Nonsense, that's not how C++ works.
If that was the case how would you ever use any type (e.g. std::string) in more
than one file, it would be a different type in every file.
> If this rule is broken, then result should be completely anarchy. Suppose we
> have 1000 files in the project - there is no guarantee that all the structs
> defined in cpps have unique names. And rule "which one to puck up is depend on
> link order" or "it could be any random one" are sounds scary to me.
Sorry you find it scary, but that's how it works. That's why namespaces exist.
More information about the Gcc-bugs
mailing list