This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/49561] [C++0x] std::list::size complexity
- From: "foom at fuhm dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 07 Oct 2011 01:26:28 +0000
- Subject: [Bug libstdc++/49561] [C++0x] std::list::size complexity
- Auto-submitted: auto-generated
- References: <bug-49561-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49561
foom at fuhm dot net changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |foom at fuhm dot net
--- Comment #8 from foom at fuhm dot net 2011-10-07 01:26:28 UTC ---
This change seems like it might be the first major incompatibility added to
gcc's c++0x mode (at least, things appeared to work before, maybe that was just
luck).
I guess it will now be dangerous to even load a shared lib compiled with
--std=c++0x into the same executable as C++ code compiled in the default c++03
mode, because of the potential for the exported weak symbols from out-of-line
std::list functions compiled for one layout to be used on a structure defined
with the other layout in the other shared object. Even when no c++ objects are
ever passed from one shared lib to the other.
This seems like a particularly bad failure mode to have, especially considering
also bug 36022 (invalid), since it's by design difficult to *not* export the
symbols even if you try.
I understand that the versioned namespaces feature is supposed to help with
this sort of issue; is there any plan to use it to give the c++0x std::list
object a different mangled name than the c++03 std::list object?