These two tests fail on AIX because <sys/thread.h> defines struct thread
in the global namespace (despite it not being a reserved name). That
means the using-declaration that adds it to the global namespace causes
a redeclaration error.

libstdc++-v3/ChangeLog:

        * testsuite/30_threads/thread/cons/84535.cc: Use a custom
        namespace.
        * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.

Tested powerpc64le-linux and powerpc-aix. Committed to trunk.

commit fe8d7fec4db838cae536eeef1965db83959cf6ee
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Tue Aug 11 16:16:22 2020

    libstdc++: Fix failing tests for AIX
    
    These two tests fail on AIX because <sys/thread.h> defines struct thread
    in the global namespace (despite it not being a reserved name). That
    means the using-declaration that adds it to the global namespace causes
    a redeclaration error.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/30_threads/thread/cons/84535.cc: Use a custom
            namespace.
            * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.

diff --git a/libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc 
b/libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
index 7846d3f7b68..711687b4f5c 100644
--- a/libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
+++ b/libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
@@ -20,6 +20,8 @@
 
 #include <thread>
 
+namespace __gnu_test
+{
 using std::is_constructible;
 using std::thread;
 
@@ -28,3 +30,4 @@ static_assert(!is_constructible<thread, thread, int>::value, 
"");
 static_assert(!is_constructible<thread, thread&, int>::value, "");
 static_assert(!is_constructible<thread, const thread&, int>::value, "");
 static_assert(!is_constructible<thread, const thread&&, int>::value, "");
+}
diff --git a/libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc 
b/libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
index e0d588e51f9..1ad2a76cb58 100644
--- a/libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
+++ b/libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
@@ -20,9 +20,12 @@
 
 #include <thread>
 
+namespace __gnu_test
+{
 using std::thread;
 using std::is_constructible;
 
 static_assert( !is_constructible<thread, thread&>::value, "" );
 static_assert( !is_constructible<thread, const thread&>::value, "" );
 static_assert( !is_constructible<thread, const thread>::value, "" );
+}

Reply via email to