This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/36104] [4.3/4.4/4.5/4.6 Regression] gnu-versioned-namespace is broken


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36104

--- Comment #15 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2011-01-28 09:51:23 UTC ---

Patches 1-3 restore gcc-4.2 behavior. Configure works, the library builds, most
all of the tests pass regression, etc.

Unfortunately, this is still annoyingly wrong on close inspection. Namespaces
nested within std containing definitions will be mis-versioned. Using
versioning + modes fails. 

The inline namespace code, which unfortunately includes most of the macros used
to define namespaces in every libstdc++ header, was done as part of the initial
work for this feature, nee namespace association. Then changes were made,
nesting was made de rigeur, and the original macros were pushed and squeezed
into submission. Yet more modes were added: parallel, profile. 

Yet another level of nesting was added for versioning, overloading the
namespace macros with another condition.

C++0x support starts to partition the std:: namespace into finer bits: chrono,
regex, etc. All of these nested namespaces + current macros are wrong.

Patch 4 fixes these issues, and provides a saner infrastructure for future
debug/profile/parallel work.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]