libstdc++: testsuite: work around bitset namespace pollution
Commit Message
rtems6 declares a global struct bitset in a header file included
indirectly by sys/types.h, that ambiguates the unqualified references
to bitset after "using namespace std" in the testsuite.
Work around the namespace pollution with using declarations of
std::bitset.
Regstrapped on x86_64-linux-gnu, also tested with a cross to
aarch64-rtems6.0. Ok to install?
for libstdc++-v3/ChangeLog
* testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
global struct bitset.
* testsuite/23_containers/bitset/ext/15361.cc: Likewise.
* testsuite/23_containers/bitset/input/1.cc: Likewise.
* testsuite/23_containers/bitset/to_string/1.cc: Likewise.
* testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
---
.../23_containers/bitset/cons/dr1325-2.cc | 1 +
.../testsuite/23_containers/bitset/ext/15361.cc | 1 +
.../testsuite/23_containers/bitset/input/1.cc | 1 +
.../testsuite/23_containers/bitset/to_string/1.cc | 1 +
.../23_containers/bitset/to_string/dr396.cc | 1 +
5 files changed, 5 insertions(+)
Comments
On Tue, 21 Jun 2022 at 06:32, Alexandre Oliva via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
>
>
> rtems6 declares a global struct bitset in a header file included
> indirectly by sys/types.h, that ambiguates the unqualified references
> to bitset after "using namespace std" in the testsuite.
>
> Work around the namespace pollution with using declarations of
> std::bitset.
>
> Regstrapped on x86_64-linux-gnu, also tested with a cross to
> aarch64-rtems6.0. Ok to install?
OK, thanks.
On 21.06.22 07:31, Alexandre Oliva via Gcc-patches wrote:
> rtems6 declares a global struct bitset in a header file included
> indirectly by sys/types.h, that ambiguates the unqualified references
> to bitset after "using namespace std" in the testsuite.
>
> Work around the namespace pollution with using declarations of
> std::bitset.
I fixed the problem in Newlib. This patch should be no longer necessary.
@@ -39,6 +39,7 @@ template<std::size_t Nb, typename CharT>
void test01()
{
using namespace std;
+ using std::bitset; // Work around struct ::bitset on rtems.
const char s1[4] = { '0', '1', '0', '1' };
VERIFY( bitset<4>(s1, 4) == test01_ref<4>(s1, 4) );
@@ -22,6 +22,7 @@
void test01()
{
using namespace std;
+ using std::bitset; // Work around struct ::bitset on rtems.
bitset<256> b;
b.set(225);
@@ -26,6 +26,7 @@
void test01()
{
using namespace std;
+ using std::bitset; // Work around struct ::bitset on rtems.
bitset<5> b5;
bitset<0> b0;
@@ -25,6 +25,7 @@
void test01()
{
using namespace std;
+ using std::bitset; // Work around struct ::bitset on rtems.
bitset<5> b5;
string s0 = b5.to_string<char, char_traits<char>, allocator<char> >();
@@ -26,6 +26,7 @@
void test01()
{
using namespace std;
+ using std::bitset; // Work around struct ::bitset on rtems.
bitset<5> b5;
string s0 = b5.to_string<char, char_traits<char>, allocator<char> >('a', 'b');