diff options
Diffstat (limited to 'test/SemaCXX/using-decl-1.cpp')
-rw-r--r-- | test/SemaCXX/using-decl-1.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/test/SemaCXX/using-decl-1.cpp b/test/SemaCXX/using-decl-1.cpp index ca53269..ec45b31 100644 --- a/test/SemaCXX/using-decl-1.cpp +++ b/test/SemaCXX/using-decl-1.cpp @@ -30,9 +30,7 @@ struct X0 { }; struct X1 : X0 { - // FIXME: give this operator() a 'float' parameter to test overloading - // behavior. It currently fails. - void operator()(); + void operator()(float&); using X0::operator(); void test() { @@ -327,3 +325,16 @@ namespace PR24033 { using PR24033::st; // expected-error {{target of using declaration conflicts with declaration already in scope}} } } + +namespace field_use { +struct A { int field; }; +struct B : A { + // Previously Clang rejected this valid C++11 code because it didn't look + // through the UsingShadowDecl. + using A::field; +#if __cplusplus < 201103L + // expected-error@+2 {{invalid use of non-static data member 'field'}} +#endif + enum { X = sizeof(field) }; +}; +} |