Browse Source

Finally get the test suite passing in C++03!!

After months of work there are only 4 tests still failing in C++03.
This patch fixes those tests.

All of the libc++ builders should be green.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@246275 91177308-0d34-0410-b5e6-96231b3b80d8
Eric Fiselier 10 years ago
parent
commit
87813277b3

+ 2 - 1
test/libcxx/utilities/memory/util.smartptr/race_condition.pass.cpp

@@ -87,7 +87,8 @@ int main() {
   }
   }
   {
   {
     // Test with in-place shared_count.
     // Test with in-place shared_count.
-    Ptr p = std::make_shared<int>(42);
+    int val = 42;
+    Ptr p = std::make_shared<int>(val);
     run_test(p);
     run_test(p);
     assert(p.use_count() == 1);
     assert(p.use_count() == 1);
   }
   }

+ 2 - 2
test/std/experimental/algorithms/alg.search/search.pass.cpp

@@ -35,9 +35,9 @@ struct MySearcher {
 
 
 int main() {
 int main() {
     typedef int * RI;
     typedef int * RI;
-    static_assert(std::is_same<RI, decltype(std::experimental::search(RI(), RI(), MySearcher()))>::value, "" );
+    static_assert((std::is_same<RI, decltype(std::experimental::search(RI(), RI(), MySearcher()))>::value), "" );
 
 
-    RI it{nullptr};
+    RI it(nullptr);
     assert(it == std::experimental::search(it, it, MySearcher()));
     assert(it == std::experimental::search(it, it, MySearcher()));
     assert(searcher_called == 1);
     assert(searcher_called == 1);
 }
 }

+ 4 - 0
test/std/re/re.alg/re.alg.search/grep.pass.cpp

@@ -19,6 +19,7 @@
 #include <regex>
 #include <regex>
 #include <cassert>
 #include <cassert>
 
 
+#include "test_macros.h"
 #include "test_iterators.h"
 #include "test_iterators.h"
 
 
 extern "C" void LLVMFuzzerTestOneInput(const char *data)
 extern "C" void LLVMFuzzerTestOneInput(const char *data)
@@ -40,7 +41,10 @@ extern "C" void LLVMFuzzerTestOneInput(const char *data)
 
 
 void fuzz_tests()  // patterns that the fuzzer has found
 void fuzz_tests()  // patterns that the fuzzer has found
 {
 {
+// Raw string literals are a C++11
+#if TEST_STD_VER >= 11
     LLVMFuzzerTestOneInput(R"XX(Õ)_%()()((\8'_%()_%()_%()_%(()_%()_%()_%(.t;)()¥f()_%()(.)_%;)()!¥f(((()()XX");
     LLVMFuzzerTestOneInput(R"XX(Õ)_%()()((\8'_%()_%()_%()_%(()_%()_%()_%(.t;)()¥f()_%()(.)_%;)()!¥f(((()()XX");
+#endif
 }
 }
 
 
 int main()
 int main()

+ 4 - 0
test/std/thread/thread.condition/notify_all_at_thread_exit.pass.cpp

@@ -9,6 +9,10 @@
 //
 //
 // UNSUPPORTED: libcpp-has-no-threads
 // UNSUPPORTED: libcpp-has-no-threads
 
 
+// notify_all_at_thread_exit(...) requires move semantics to transfer the
+// unique_lock.
+// UNSUPPORTED: c++98, c++03
+
 // <condition_variable>
 // <condition_variable>
 
 
 // void
 // void