Fix a couple of failing tests for C++03 by checking for rvalue reference support...
authorMarshall Clow <mclow.lists@gmail.com>
Thu, 23 Oct 2014 03:57:52 +0000 (03:57 +0000)
committerMarshall Clow <mclow.lists@gmail.com>
Thu, 23 Oct 2014 03:57:52 +0000 (03:57 +0000)
llvm-svn: 220465

libcxx/test/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/weak_ptr.pass.cpp
libcxx/test/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/weak_ptr_Y.pass.cpp

index 1fdf883..75bf3df 100644 (file)
@@ -55,8 +55,10 @@ int C::count = 0;
 template <class T>
 std::weak_ptr<T> source (std::shared_ptr<T> p) { return std::weak_ptr<T>(p); }
 
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 template <class T>
 void sink (std::weak_ptr<T> &&) {}
+#endif
 
 int main()
 {
@@ -98,6 +100,7 @@ int main()
     assert(B::count == 0);
     assert(A::count == 0);
 
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     {
         std::shared_ptr<A> ps(new A);
         std::weak_ptr<A> pA = source(ps);
@@ -107,4 +110,5 @@ int main()
     }
     assert(B::count == 0);
     assert(A::count == 0);
+#endif
 }
index 70ad11b..51a8fa5 100644 (file)
@@ -55,9 +55,6 @@ int C::count = 0;
 template <class T>
 std::weak_ptr<T> source (std::shared_ptr<T> p) { return std::weak_ptr<T>(p); }
 
-template <class T>
-void sink (std::weak_ptr<T> &&) {}
-
 int main()
 {
     static_assert(( std::is_convertible<std::weak_ptr<A>, std::weak_ptr<B> >::value), "");