Only use the non-standards-compliant std::distance on the compiler that is
authorChris Lattner <sabre@nondot.org>
Thu, 3 Jun 2004 18:48:59 +0000 (18:48 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 3 Jun 2004 18:48:59 +0000 (18:48 +0000)
buggy, not for all compilers that are not GCC 3

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13990 91177308-0d34-0410-b5e6-96231b3b80d8

include/Support/ilist
include/llvm/ADT/ilist

index bfa601f9c9f9281b56d3b50ded704ee59e1a27bb..499c3e2b9d5dfe5530ba7d26a0cce90a1a3020d4 100644 (file)
@@ -438,13 +438,14 @@ public:
   //
 
   size_type size() const {
-#if __GNUC__ == 3
-    size_type Result = std::distance(begin(), end());
-#else
+#if __GNUC__ == 2
+    // GCC 2.95 has a broken std::distance
     size_type Result = 0;
     std::distance(begin(), end(), Result);
-#endif
     return Result;
+#else
+    return std::distance(begin(), end());
+#endif
   }
 
   iterator erase(iterator first, iterator last) {
index bfa601f9c9f9281b56d3b50ded704ee59e1a27bb..499c3e2b9d5dfe5530ba7d26a0cce90a1a3020d4 100644 (file)
@@ -438,13 +438,14 @@ public:
   //
 
   size_type size() const {
-#if __GNUC__ == 3
-    size_type Result = std::distance(begin(), end());
-#else
+#if __GNUC__ == 2
+    // GCC 2.95 has a broken std::distance
     size_type Result = 0;
     std::distance(begin(), end(), Result);
-#endif
     return Result;
+#else
+    return std::distance(begin(), end());
+#endif
   }
 
   iterator erase(iterator first, iterator last) {