aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-12-06 21:27:58 +0000
committerDouglas Gregor <dgregor@apple.com>2009-12-06 21:27:58 +0000
commitd490f953e812a9bb1729637cc70a6db7d997ced0 (patch)
tree6bf360835af76e69c989c39bc18b27fbead3f351
parent01aec11c8cace2b9b22531627970d8bbdbac0c1c (diff)
PointerUnion == PointerUnion does not do what I thought it did. Also, fix a thinko in a PointerUnion::get call.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90719 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Sema/SemaCodeComplete.cpp8
-rw-r--r--test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp0
-rw-r--r--test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp0
-rw-r--r--test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp0
4 files changed, 4 insertions, 4 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp
index c76b3733b0..5f9bba0f8c 100644
--- a/lib/Sema/SemaCodeComplete.cpp
+++ b/lib/Sema/SemaCodeComplete.cpp
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp
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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp
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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp