diff options
Diffstat (limited to 'test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp')
-rw-r--r-- | test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp b/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp deleted file mode 100644 index ed6c6c0bccf1..000000000000 --- a/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s - -namespace Ints { - int zero = 0; // expected-note {{candidate found by name lookup is 'Ints::zero'}} - void f(int); // expected-note 3 {{candidate function}} - void g(int); -} - -namespace Floats { - float zero = 0.0f; // expected-note {{candidate found by name lookup is 'Floats::zero'}} - void f(float); // expected-note 3 {{candidate function}} - void g(float); -} - -namespace Numbers { - using namespace Ints; - using namespace Floats; -} - -void test() { - int i = Ints::zero; - Ints::f(i); - - float f = Floats::zero; - Floats::f(f); - - double n = Numbers::zero; // expected-error {{reference to 'zero' is ambiguous}} - Numbers::f(n); // expected-error{{call to 'f' is ambiguous}} - Numbers::f(i); - Numbers::f(f); -} - -namespace Numbers { - struct Number { // expected-note 2 {{candidate constructor (the implicit copy constructor) not viable}} -#if __cplusplus >= 201103L // C++11 or later - // expected-note@-2 2 {{candidate constructor (the implicit move constructor) not viable}} -#endif - - explicit Number(double d) : d(d) {} - double d; - }; - Number zero(0.0f); - void g(Number); // expected-note 2{{passing argument to parameter here}} -} - -void test2() { - Numbers::Number n = Numbers::zero; - Numbers::f(n); // expected-error {{no matching function for call to 'f'}} - Numbers::g(n); -} - -namespace Numbers2 { - using Numbers::f; - using Numbers::g; -} - -void test3() { - Numbers::Number n = Numbers::zero; - Numbers2::f(n); // expected-error {{no matching function for call to 'f'}} - Numbers2::g(n); - - int i = Ints::zero; - Numbers2::f(i); - Numbers2::g(i); // expected-error {{no viable conversion from 'int' to 'Numbers::Number'}} - - float f = Floats::zero; - Numbers2::f(f); - Numbers2::g(f); // expected-error {{no viable conversion from 'float' to 'Numbers::Number'}} -} - -namespace inline_ns { - int x; // expected-note 2{{found}} - inline namespace A { -#if __cplusplus <= 199711L // C++03 or earlier - // expected-warning@-2 {{inline namespaces are a C++11 feature}} -#endif - - int x; // expected-note 2{{found}} - int y; // expected-note 2{{found}} - } - int y; // expected-note 2{{found}} - int k1 = x + y; // expected-error 2{{ambiguous}} - int k2 = inline_ns::x + inline_ns::y; // expected-error 2{{ambiguous}} -} |