restore semantics of operator* (removing a FIXME I had to introduce in r80224)
authorGabor Greif <ggreif@gmail.com>
Mon, 31 Aug 2009 20:54:23 +0000 (20:54 +0000)
committerGabor Greif <ggreif@gmail.com>
Mon, 31 Aug 2009 20:54:23 +0000 (20:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80622 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/EquivalenceClasses.h

index bed99d3d20573b5b1e954d1b3a4413843403777b..ac9dd4db1fb473a5727c23722e23469fbcff1ec9 100644 (file)
@@ -234,8 +234,9 @@ public:
   }
 
   class member_iterator : public std::iterator<std::forward_iterator_tag,
-                                               ElemTy, ptrdiff_t> {
-    typedef std::iterator<std::forward_iterator_tag, ElemTy, ptrdiff_t> super;
+                                               const ElemTy, ptrdiff_t> {
+    typedef std::iterator<std::forward_iterator_tag,
+                          const ElemTy, ptrdiff_t> super;
     const ECValue *Node;
     friend class EquivalenceClasses;
   public:
@@ -249,7 +250,7 @@ public:
 
     reference operator*() const {
       assert(Node != 0 && "Dereferencing end()!");
-      return const_cast<reference>(Node->getData()); // FIXME
+      return Node->getData();
     }
     reference operator->() const { return operator*(); }