The hack won't work on VS 2005, and it might not be needed anyway.
authorJeff Cohen <jeffc@jolt-lang.org>
Mon, 5 Mar 2007 17:22:33 +0000 (17:22 +0000)
committerJeff Cohen <jeffc@jolt-lang.org>
Mon, 5 Mar 2007 17:22:33 +0000 (17:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34930 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/SmallVector.h

index 723cbcdaf0dc817a5744a6c86d6502e22eb03a04..dc37ac744991fd26fb3bade1b59b1ad5ad99a22c 100644 (file)
 
 #ifdef _MSC_VER
 namespace std {
+#if _MSC_VER <= 1310
   // Work around flawed VC++ implementation of std::uninitialized_copy.  Define
   // additional overloads so that elements with pointer types are recognized as
   // scalars and not objects, causing bizarre type conversion errors.
-  // FIXME: this hack may or may not be correct for Visual Studio 2005.
   template<class T1, class T2>
   inline _Scalar_ptr_iterator_tag _Ptr_cat(T1 **, T2 **) {
     _Scalar_ptr_iterator_tag _Cat;
@@ -35,6 +35,10 @@ namespace std {
     _Scalar_ptr_iterator_tag _Cat;
     return _Cat;
   }
+#else
+// FIXME: It is not clear if the problem is fixed in VS 2005.  What is clear
+// is that the above hack won't work if it wasn't fixed.
+#endif
 }
 #endif