summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-05-14 04:53:42 +0000
committerDouglas Gregor <dgregor@apple.com>2010-05-14 04:53:42 +0000
commitf3d3ae665cdb8cdd72ecab587929321a1dae6290 (patch)
treed3fefda60d09cad24873793ea53f08b518164a67 /clang/test
parent3439ed6324f437fdafaf5a4afe1a0f59b3807c04 (diff)
downloadbcm5719-llvm-f3d3ae665cdb8cdd72ecab587929321a1dae6290.tar.gz
bcm5719-llvm-f3d3ae665cdb8cdd72ecab587929321a1dae6290.zip
Make sure to search semantic scopes and appropriate template-parameter
scopes during unqualified name lookup that has fallen out to namespace scope. Fixes PR7133. llvm-svn: 103766
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/nested-name-spec.cpp16
-rw-r--r--clang/test/SemaTemplate/nested-name-spec-template.cpp7
2 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/nested-name-spec.cpp b/clang/test/SemaCXX/nested-name-spec.cpp
index 59a8e8c45dc..0dc1097e386 100644
--- a/clang/test/SemaCXX/nested-name-spec.cpp
+++ b/clang/test/SemaCXX/nested-name-spec.cpp
@@ -228,3 +228,19 @@ namespace test3 {
A::execute(path); // expected-error {{incomplete type 'test3::A' named in nested name specifier}}
}
}
+
+namespace PR7133 {
+ namespace A {
+ class Foo;
+ }
+
+ namespace A {
+ namespace B {
+ bool foo(Foo &);
+ }
+ }
+
+ bool A::B::foo(Foo &) {
+ return false;
+ }
+}
diff --git a/clang/test/SemaTemplate/nested-name-spec-template.cpp b/clang/test/SemaTemplate/nested-name-spec-template.cpp
index 9d25a051e8a..54e615b4ab6 100644
--- a/clang/test/SemaTemplate/nested-name-spec-template.cpp
+++ b/clang/test/SemaTemplate/nested-name-spec-template.cpp
@@ -64,3 +64,10 @@ namespace test1 {
template <class T>
T pair<T>::* const pair<T>::mem_array[2] = { &pair<T>::x, &pair<T>::y };
}
+
+typedef int T;
+namespace N1 {
+ template<typename T> T f0();
+}
+
+template<typename T> T N1::f0() { }
OpenPOWER on IntegriCloud