From 72adee00f6e0cd3239a2b4e1e1c8512e26ec6537 Mon Sep 17 00:00:00 2001 From: Jeff Cohen Date: Mon, 5 Mar 2007 17:22:33 +0000 Subject: [PATCH] The hack won't work on VS 2005, and it might not be needed anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34930 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/SmallVector.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h index 723cbcdaf0d..dc37ac74499 100644 --- a/include/llvm/ADT/SmallVector.h +++ b/include/llvm/ADT/SmallVector.h @@ -20,10 +20,10 @@ #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 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 -- 2.34.1