[PATCH] PR libstdc++/81064 fix versioned namespace

François Dumont frs.dumont@gmail.com
Wed Jul 19 21:02:00 GMT 2017


Here is the revisited version passing all tests successfully except 2 
that are also failing without the patch:
FAIL: 21_strings/basic_string/modifiers/insert/char/1.cc execution test
FAIL: 21_strings/basic_string/modifiers/insert/wchar_t/1.cc execution test

This is a rather mechanical change except for few files I would like to 
comment on:
- include/bits/c++config
     I removed many declaration of namespace that are not necessary as 
we don't need to declare any nested inline namespace anymore. In this 
last version I managed to isolate the versioned namespace value to a 
single location: the definition of _GLIBCXX_BEGIN_VERSION_NAMESPACE. 
After the patch it is the only location of this version information so 
next bump will be resume to updating c++config apart from python and 
build scripts.

     Note that the PR seems to say that the namespace should be always 
declared the same way. In this patch __8 is declared inline only in 
c++config, _GLIBCXX_BEGIN_VERSION_NAMESPACE don't repeat the inline keyword.

- include/bits/regex.h
- include/std/variant

     In those 2 files we were having:
        friend bool __detail::
#if _GLIBCXX_INLINE_VERSION
         __8:: // Required due to PR c++/59256
#endif
     ...

     I don't know if the front end change was to fix c++/59256 or if it 
is due to the new namespace organization but I removed this code and 
tests are successful. They were of course failing because there is no 
more __detail::__8.

     I am now ready to commit. I'll do it this week-end if I have no 
further feedback.

François


-------------- next part --------------
A non-text attachment was scrubbed...
Name: versioned_namespace.patch.bz2
Type: application/x-bzip
Size: 19802 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20170719/b3515d29/attachment.bin>


More information about the Libstdc++ mailing list