diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-02-04 00:32:51 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-02-04 00:32:51 +0000 |
commit | e254f90d94e3294470b055e3851d636333e3467c (patch) | |
tree | 40abda5f13c55af26120e1a54173929d33723423 /clang/test/SemaCXX/qualification-conversion.cpp | |
parent | 3d9296e6f552cceb73dae277f56bac3127a44759 (diff) | |
download | bcm5719-llvm-e254f90d94e3294470b055e3851d636333e3467c.tar.gz bcm5719-llvm-e254f90d94e3294470b055e3851d636333e3467c.zip |
Initial implementation of argument dependent lookup (a.k.a. ADL,
a.k.a. Koenig lookup) in C++. Most of the pieces are in place, but for
two:
- In an unqualified call g(x), even if the name does not refer to
anything in the current scope, we can still find functions named
"g" based on ADL. We don't yet have this ability.
- ADL will need updating for friend functions and templates.
llvm-svn: 63692
Diffstat (limited to 'clang/test/SemaCXX/qualification-conversion.cpp')
-rw-r--r-- | clang/test/SemaCXX/qualification-conversion.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/test/SemaCXX/qualification-conversion.cpp b/clang/test/SemaCXX/qualification-conversion.cpp index 1b818c33927..689a7b37a56 100644 --- a/clang/test/SemaCXX/qualification-conversion.cpp +++ b/clang/test/SemaCXX/qualification-conversion.cpp @@ -1,23 +1,23 @@ // RUN: clang -fsyntax-only -pedantic -verify %s int* quals1(int const * p); int* quals2(int const * const * pp); -int* quals3(int const * * const * ppp); +int* quals3(int const * * const * ppp); // expected-note{{candidate function}} void test_quals(int * p, int * * pp, int * * * ppp) { int const * const * pp2 = pp; quals1(p); quals2(pp); - quals3(ppp); // expected-error {{ incompatible type passing 'int ***', expected 'int const **const *' }} + quals3(ppp); // expected-error {{no matching}} } struct A {}; void mquals1(int const A::*p); void mquals2(int const A::* const A::*pp); -void mquals3(int const A::* A::* const A::*ppp); +void mquals3(int const A::* A::* const A::*ppp); // expected-note{{candidate function}} void test_mquals(int A::*p, int A::* A::*pp, int A::* A::* A::*ppp) { int const A::* const A::* pp2 = pp; mquals1(p); mquals2(pp); - mquals3(ppp); // expected-error {{ incompatible type passing 'int struct A::*struct A::*struct A::*', expected 'int const struct A::*struct A::*const struct A::*' }} + mquals3(ppp); // expected-error {{no matching}} } |