]> granicus.if.org Git - clang/commitdiff
PointerUnion == PointerUnion does not do what I thought it did. Also, fix a thinko...
authorDouglas Gregor <dgregor@apple.com>
Sun, 6 Dec 2009 21:27:58 +0000 (21:27 +0000)
committerDouglas Gregor <dgregor@apple.com>
Sun, 6 Dec 2009 21:27:58 +0000 (21:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90719 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaCodeComplete.cpp
test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp [new file with mode: 0644]
test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp [new file with mode: 0644]
test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp [new file with mode: 0644]

index c76b3733b0ef94d0a8f31766294a198bb458407b..5f9bba0f8c8fe42fd0887516e118cd253b54f1aa 100644 (file)
@@ -222,7 +222,7 @@ public:
     if (NamedDecl *ND = DeclOrIterator.dyn_cast<NamedDecl *>())
       return reference(ND, SingleDeclIndex);
 
-    return *DeclOrIterator.get<DeclIndexPair*>();
+    return *DeclOrIterator.get<const DeclIndexPair*>();
   }
 
   pointer operator->() const {
@@ -230,13 +230,13 @@ public:
   }
 
   friend bool operator==(const iterator &X, const iterator &Y) {
-    return X.DeclOrIterator == Y.DeclOrIterator &&
+    return X.DeclOrIterator.getOpaqueValue()
+                                  == Y.DeclOrIterator.getOpaqueValue() &&
       X.SingleDeclIndex == Y.SingleDeclIndex;
   }
 
   friend bool operator!=(const iterator &X, const iterator &Y) {
-    return X.DeclOrIterator != Y.DeclOrIterator ||
-      X.SingleDeclIndex != Y.SingleDeclIndex;
+    return !(X == Y);
   }
 };
 
diff --git a/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp b/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp b/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp b/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp
new file mode 100644 (file)
index 0000000..e69de29