aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2013-01-30 02:10:08 +0000
committerDouglas Gregor <dgregor@apple.com>2013-01-30 02:10:08 +0000
commite28f6abf588f51a21d1db638e460f9c086c08db4 (patch)
treeb6f6393e321f743a6d534c7b3e9b5ac8e78680fa
parent74c2498bb9e339345ee32bdd095e76157cec3b86 (diff)
Unresolved lookups can have using declarations that refer to
unresolved using declarations. Fixes PR14768 / <rdar://problem/13030296>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173883 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Sema/Lookup.h2
-rw-r--r--test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/include/clang/Sema/Lookup.h b/include/clang/Sema/Lookup.h
index 68b36e7d3c..3e7e3a16eb 100644
--- a/include/clang/Sema/Lookup.h
+++ b/include/clang/Sema/Lookup.h
@@ -625,7 +625,7 @@ private:
bool sanityCheckUnresolved() const {
for (iterator I = begin(), E = end(); I != E; ++I)
- if (isa<UnresolvedUsingValueDecl>(*I))
+ if (isa<UnresolvedUsingValueDecl>((*I)->getUnderlyingDecl()))
return true;
return false;
}
diff --git a/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp b/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp
index ae40062fe1..a38ff15525 100644
--- a/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp
+++ b/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp
@@ -33,3 +33,12 @@ namespace test1 {
}
}
+// PR 14768
+namespace PR14768 {
+ template<typename eT> class Mat;
+ template<typename eT> class Col : public Mat<eT> {
+ using Mat<eT>::operator();
+ using Col<eT>::operator();
+ void operator() ();
+ };
+}