summaryrefslogtreecommitdiff
path: root/include/llvm/ADT/SmallVector.h
diff options
context:
space:
mode:
authorJeff Cohen <jeffc@jolt-lang.org>2007-03-05 00:00:42 +0000
committerJeff Cohen <jeffc@jolt-lang.org>2007-03-05 00:00:42 +0000
commitca5183d445954a9b2a570d6bbba1bc2b00ad6442 (patch)
tree2fe70b0a35fe2569c8d6434e9769bc6e8bd58204 /include/llvm/ADT/SmallVector.h
parentf298fd0428e3e26fda13d24bb7295c416a9b8452 (diff)
downloadllvm-ca5183d445954a9b2a570d6bbba1bc2b00ad6442.tar.gz
llvm-ca5183d445954a9b2a570d6bbba1bc2b00ad6442.tar.bz2
llvm-ca5183d445954a9b2a570d6bbba1bc2b00ad6442.tar.xz
Unbreak VC++ build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/SmallVector.h')
-rw-r--r--include/llvm/ADT/SmallVector.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h
index b5ee6c454b..9f2842a638 100644
--- a/include/llvm/ADT/SmallVector.h
+++ b/include/llvm/ADT/SmallVector.h
@@ -18,6 +18,25 @@
#include <iterator>
#include <memory>
+#ifdef _MSC_VER
+namespace std {
+ // Fix bug in VC++ implementation of std::uninitialized_copy. Define
+ // additional overloads so that the copy is recognized as a scalar and
+ // not an object copy.
+ template<class T1, class T2>
+ inline _Scalar_ptr_iterator_tag _Ptr_cat(T1 **, T2 **) {
+ _Scalar_ptr_iterator_tag _Cat;
+ return _Cat;
+ }
+
+ template<class T1, class T2>
+ inline _Scalar_ptr_iterator_tag _Ptr_cat(T1* const *, T2 **) {
+ _Scalar_ptr_iterator_tag _Cat;
+ return _Cat;
+ }
+}
+#endif
+
namespace llvm {
/// SmallVectorImpl - This class consists of common code factored out of the