diff options
Diffstat (limited to 'test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp')
-rw-r--r-- | test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp b/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp index cc28bf6c28c4c..ce43720cb2d3e 100644 --- a/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp +++ b/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp @@ -1,3 +1,5 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s // RUN: %clang_cc1 -fsyntax-only -verify %s // C++03 [namespace.udecl]p12: @@ -161,3 +163,33 @@ namespace test4 { d.bar<int>(3); // expected-error {{'bar' is a protected member}} } } + +namespace test5 { + struct Derived; + struct Base { + void operator=(const Derived&); + }; + struct Derived : Base { + // Hidden by implicit derived class operator. + using Base::operator=; + }; + void f(Derived d) { + d = d; + } +} + +#if __cplusplus >= 201103L +namespace test6 { + struct Derived; + struct Base { + void operator=(Derived&&); + }; + struct Derived : Base { + // Hidden by implicit derived class operator. + using Base::operator=; + }; + void f(Derived d) { + d = Derived(); + } +} +#endif |