-//===-- Support/iterator - "Portable" wrapper around <iterator> -*- C++ -*-===//
+//===-- llvm/ADT/iterator - Portable wrapper around <iterator> --*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
//
//===----------------------------------------------------------------------===//
-#ifndef SUPPORT_ITERATOR
-#define SUPPORT_ITERATOR
+#ifndef LLVM_ADT_ITERATOR
+#define LLVM_ADT_ITERATOR
#include <iterator>
-#if !@HAVE_BI_ITERATOR@
-# if @HAVE_STD_ITERATOR@
+#undef HAVE_BI_ITERATOR
+#undef HAVE_STD_ITERATOR
+#undef HAVE_FWD_ITERATOR
+
+#ifdef _MSC_VER
+# define HAVE_BI_ITERATOR 0
+# define HAVE_STD_ITERATOR 1
+# define HAVE_FWD_ITERATOR 0
+#endif
+
+#if !HAVE_BI_ITERATOR
+# if HAVE_STD_ITERATOR
/// If the bidirectional iterator is not defined, we attempt to define it in
/// terms of the C++ standard iterator. Otherwise, we import it with a "using"
/// statement.
using std::bidirectional_iterator;
#endif
-#if !@HAVE_FWD_ITERATOR@
-# if @HAVE_STD_ITERATOR@
+#if !HAVE_FWD_ITERATOR
+# if HAVE_STD_ITERATOR
/// If the forward iterator is not defined, attempt to define it in terms of
/// the C++ standard iterator. Otherwise, we import it with a "using" statement.
///