diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2011-10-20 21:14:49 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2011-10-20 21:14:49 +0000 |
commit | 36981b17ed939300f6f8fc2355a255f711fcef71 (patch) | |
tree | ee2483e98b09cac943dc93a6969d83ca737ff139 /test/CXX/over | |
parent | 180abc3db9ae3b4fc63cd65b15697e6ffcc8a657 (diff) |
Notes
Diffstat (limited to 'test/CXX/over')
7 files changed, 45 insertions, 20 deletions
diff --git a/test/CXX/over/over.built/p23.cpp b/test/CXX/over/over.built/p23.cpp new file mode 100644 index 0000000000000..41255214ec6af --- /dev/null +++ b/test/CXX/over/over.built/p23.cpp @@ -0,0 +1,25 @@ +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s + +struct Variant { + template <typename T> operator T(); +}; + +Variant getValue(); + +void testVariant() { + bool ret1 = getValue() || getValue(); + bool ret2 = getValue() && getValue(); + bool ret3 = !getValue(); +} + +struct ExplicitVariant { + template <typename T> explicit operator T(); +}; + +ExplicitVariant getExplicitValue(); + +void testExplicitVariant() { + bool ret1 = getExplicitValue() || getExplicitValue(); + bool ret2 = getExplicitValue() && getExplicitValue(); + bool ret3 = !getExplicitValue(); +} diff --git a/test/CXX/over/over.built/p25.cpp b/test/CXX/over/over.built/p25.cpp index c185fb4fb96d4..aea3854a420e4 100644 --- a/test/CXX/over/over.built/p25.cpp +++ b/test/CXX/over/over.built/p25.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s enum class Color { Red, Green, Blue }; diff --git a/test/CXX/over/over.load/p2-0x.cpp b/test/CXX/over/over.load/p2-0x.cpp index f0ace9044a2d8..cf38741056aba 100644 --- a/test/CXX/over/over.load/p2-0x.cpp +++ b/test/CXX/over/over.load/p2-0x.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s // Member function declarations with the same name and the same // parameter-type-list as well as mem- ber function template diff --git a/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user/p3-0x.cpp b/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user/p3-0x.cpp index d9e0ff88bd8d3..1c71468e453dc 100644 --- a/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user/p3-0x.cpp +++ b/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user/p3-0x.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -std=c++0x -verify %s +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s namespace PR6285 { template<typename T> struct identity diff --git a/test/CXX/over/over.match/over.match.best/over.ics.rank/p3-0x.cpp b/test/CXX/over/over.match/over.match.best/over.ics.rank/p3-0x.cpp index ab171bc3f6f42..3971acc581696 100644 --- a/test/CXX/over/over.match/over.match.best/over.ics.rank/p3-0x.cpp +++ b/test/CXX/over/over.match/over.match.best/over.ics.rank/p3-0x.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s namespace std_example { int i; int f1(); diff --git a/test/CXX/over/over.match/over.match.funcs/p4-0x.cpp b/test/CXX/over/over.match/over.match.funcs/p4-0x.cpp index 8ccc5b6204d05..3845af09d14ca 100644 --- a/test/CXX/over/over.match/over.match.funcs/p4-0x.cpp +++ b/test/CXX/over/over.match/over.match.funcs/p4-0x.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s +// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s template<typename T> T &lvalue(); template<typename T> T &&xvalue(); diff --git a/test/CXX/over/over.over/p2-resolve-single-template-id.cpp b/test/CXX/over/over.over/p2-resolve-single-template-id.cpp index 544a66d9e39a4..d2a23ce96df26 100644 --- a/test/CXX/over/over.over/p2-resolve-single-template-id.cpp +++ b/test/CXX/over/over.over/p2-resolve-single-template-id.cpp @@ -27,26 +27,26 @@ namespace DontAllowUnresolvedOverloadedExpressionInAnUnusedExpression void one() { } template<class T> void oneT() { } - void two() { } //expected-note 2{{candidate}} - void two(int) { } //expected-note 2{{candidate}} - template<class T> void twoT() { } //expected-note 2{{candidate}} - template<class T> void twoT(T) { } //expected-note 2{{candidate}} + void two() { } // expected-note 2 {{possible target for call}} + void two(int) { } // expected-note 2 {{possible target for call}} + template<class T> void twoT() { } // expected-note 2 {{possible target for call}} + template<class T> void twoT(T) { } // expected-note 2 {{possible target for call}} void check() { one; // expected-warning {{expression result unused}} - two; // expected-error{{cannot resolve overloaded function 'two' from context}} + two; // expected-error{{reference to overloaded function could not be resolved; did you mean to call it with no arguments?}} oneT<int>; // expected-warning {{expression result unused}} - twoT<int>; // expected-error {{cannot resolve overloaded function 'twoT' from context}} + twoT<int>; // expected-error {{reference to overloaded function could not be resolved; did you mean to call it?}} } // check the template function case template<class T> void check() { one; // expected-warning {{expression result unused}} - two; // expected-error{{cannot resolve overloaded function 'two' from context}} + two; // expected-error{{reference to overloaded function could not be resolved; did you mean to call it with no arguments?}} oneT<int>; // expected-warning {{expression result unused}} - twoT<int>; // expected-error {{cannot resolve overloaded function 'twoT' from context}} + twoT<int>; // expected-error {{reference to overloaded function could not be resolved; did you mean to call it?}} } @@ -128,8 +128,8 @@ namespace member_pointers { template <typename T> bool f(T) { return false; } template <typename T> static bool g(T) { return false; } - template <typename T> bool h(T) { return false; } - template <int N> static bool h(int) { return false; } + template <typename T> bool h(T) { return false; } // expected-note 3 {{possible target for call}} + template <int N> static bool h(int) { return false; } // expected-note 3 {{possible target for call}} }; void test(S s) { @@ -137,8 +137,8 @@ namespace member_pointers { if (S::f<int>) return; // expected-error {{call to non-static member function without an object argument}} if (&S::f<char>) return; if (&S::f<int>) return; - if (s.f<char>) return; // expected-error {{a bound member function may only be called}} - if (s.f<int>) return; // expected-error {{a bound member function may only be called}} + if (s.f<char>) return; // expected-error {{reference to non-static member function must be called}} + if (s.f<int>) return; // expected-error {{reference to non-static member function must be called}} if (&s.f<char>) return; // expected-error {{cannot create a non-constant pointer to member function}} if (&s.f<int>) return; // expected-error {{cannot create a non-constant pointer to member function}} @@ -152,13 +152,13 @@ namespace member_pointers { if (&s.g<int>) return; if (S::h<42>) return; - if (S::h<int>) return; // expected-error {{a bound member function may only be called}} + if (S::h<int>) return; // expected-error {{reference to overloaded function could not be resolved; did you mean to call it?}} if (&S::h<42>) return; if (&S::h<int>) return; if (s.h<42>) return; - if (s.h<int>) return; // expected-error {{a bound member function may only be called}} + if (s.h<int>) return; // expected-error {{reference to overloaded function could not be resolved; did you mean to call it?}} if (&s.h<42>) return; - if (&s.h<int>) return; // expected-error {{a bound member function may only be called}} + if (&s.h<int>) return; // expected-error {{reference to overloaded function could not be resolved; did you mean to call it?}} { bool b = S::f<char>; } // expected-error {{call to non-static member function without an object argument}} { bool b = S::f<int>; } // expected-error {{call to non-static member function without an object argument}} |