diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-09-13 20:16:20 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-09-13 20:16:20 +0000 |
commit | 43bc036e8ae37c5940857f3dcf50bc9441e7c4d0 (patch) | |
tree | 74c1faf59f34e2590b7780bba6726321ed90e951 /clang/test | |
parent | 460fc46e0fd34893231ef1ab6d4d9f02f339e443 (diff) | |
download | bcm5719-llvm-43bc036e8ae37c5940857f3dcf50bc9441e7c4d0.tar.gz bcm5719-llvm-43bc036e8ae37c5940857f3dcf50bc9441e7c4d0.zip |
Promote the warning about extra qualification on a declaration from a
warning to an error. C++ bans it, and both GCC and EDG diagnose it as
an error. Microsoft allows it, so we still warn in Microsoft
mode. Fixes <rdar://problem/11135644>.
llvm-svn: 163831
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CXX/dcl.decl/dcl.meaning/p1.cpp | 14 | ||||
-rw-r--r-- | clang/test/CXX/temp/p3.cpp | 2 | ||||
-rw-r--r-- | clang/test/FixIt/fixit.cpp | 2 | ||||
-rw-r--r-- | clang/test/Misc/warning-flags.c | 3 | ||||
-rw-r--r-- | clang/test/SemaCXX/MicrosoftExtensions.cpp | 1 | ||||
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 2 | ||||
-rw-r--r-- | clang/test/SemaCXX/nested-name-spec.cpp | 8 |
7 files changed, 16 insertions, 16 deletions
diff --git a/clang/test/CXX/dcl.decl/dcl.meaning/p1.cpp b/clang/test/CXX/dcl.decl/dcl.meaning/p1.cpp index 3672ea0ea08..ec9a2611872 100644 --- a/clang/test/CXX/dcl.decl/dcl.meaning/p1.cpp +++ b/clang/test/CXX/dcl.decl/dcl.meaning/p1.cpp @@ -7,7 +7,7 @@ namespace PR8019 { struct PR8019::x { int x; }; // expected-error{{non-friend class member 'x' cannot have a qualified name}} struct inner; - struct y::inner { }; // expected-warning{{extra qualification on member 'inner'}} + struct y::inner { }; // expected-error{{extra qualification on member 'inner'}} template<typename T> struct PR8019::x2 { }; // expected-error{{non-friend class member 'x2' cannot have a qualified name}} @@ -16,7 +16,7 @@ namespace PR8019 { struct inner_template; template<typename T> - struct y::inner_template { }; // expected-warning{{extra qualification on member 'inner_template'}} + struct y::inner_template { }; // expected-error{{extra qualification on member 'inner_template'}} }; } @@ -29,9 +29,9 @@ namespace NS { template<typename T> void wibble(T); } namespace NS { - void NS::foo() {} // expected-warning{{extra qualification on member 'foo'}} - int NS::bar; // expected-warning{{extra qualification on member 'bar'}} - struct NS::X { }; // expected-warning{{extra qualification on member 'X'}} - template<typename T> struct NS::Y; // expected-warning{{extra qualification on member 'Y'}} - template<typename T> void NS::wibble(T) { } // expected-warning{{extra qualification on member 'wibble'}} + void NS::foo() {} // expected-error{{extra qualification on member 'foo'}} + int NS::bar; // expected-error{{extra qualification on member 'bar'}} + struct NS::X { }; // expected-error{{extra qualification on member 'X'}} + template<typename T> struct NS::Y; // expected-error{{extra qualification on member 'Y'}} + template<typename T> void NS::wibble(T) { } // expected-error{{extra qualification on member 'wibble'}} } diff --git a/clang/test/CXX/temp/p3.cpp b/clang/test/CXX/temp/p3.cpp index c146bc4faad..11f72de918c 100644 --- a/clang/test/CXX/temp/p3.cpp +++ b/clang/test/CXX/temp/p3.cpp @@ -8,7 +8,7 @@ template<typename T> int S<T>::a, S<T>::b; // expected-error {{can only declare template<typename T> struct A { static A a; } A<T>::a; // expected-error {{expected ';' after struct}} \ expected-error {{use of undeclared identifier 'T'}} \ - expected-warning{{extra qualification}} + expected-error{{extra qualification}} template<typename T> struct B { } f(); // expected-error {{expected ';' after struct}} \ expected-error {{requires a type specifier}} diff --git a/clang/test/FixIt/fixit.cpp b/clang/test/FixIt/fixit.cpp index 3eac434a36b..dc0b6c8f2a1 100644 --- a/clang/test/FixIt/fixit.cpp +++ b/clang/test/FixIt/fixit.cpp @@ -64,7 +64,7 @@ namespace rdar7796492 { // extra qualification on member class C { - int C::foo(); // expected-warning {{extra qualification}} + int C::foo(); // expected-error {{extra qualification}} }; namespace rdar8488464 { diff --git a/clang/test/Misc/warning-flags.c b/clang/test/Misc/warning-flags.c index 5968851d09b..a1a0d7ed76a 100644 --- a/clang/test/Misc/warning-flags.c +++ b/clang/test/Misc/warning-flags.c @@ -18,7 +18,7 @@ This test serves two purposes: The list of warnings below should NEVER grow. It should gradually shrink to 0. -CHECK: Warnings without flags (159): +CHECK: Warnings without flags (158): CHECK-NEXT: ext_delete_void_ptr_operand CHECK-NEXT: ext_enum_friend CHECK-NEXT: ext_expected_semi_decl_list @@ -101,7 +101,6 @@ CHECK-NEXT: warn_integer_too_large_for_signed CHECK-NEXT: warn_invalid_asm_cast_lvalue CHECK-NEXT: warn_many_braces_around_scalar_init CHECK-NEXT: warn_maynot_respond -CHECK-NEXT: warn_member_extra_qualification CHECK-NEXT: warn_method_param_redefinition CHECK-NEXT: warn_mismatched_exception_spec CHECK-NEXT: warn_missing_case_for_condition diff --git a/clang/test/SemaCXX/MicrosoftExtensions.cpp b/clang/test/SemaCXX/MicrosoftExtensions.cpp index 0b72cd3e1fc..9b50d3d28b2 100644 --- a/clang/test/SemaCXX/MicrosoftExtensions.cpp +++ b/clang/test/SemaCXX/MicrosoftExtensions.cpp @@ -203,3 +203,4 @@ struct PR11150 { void f() { int __except = 0; } +void ::f(); // expected-warning{{extra qualification on member 'f'}} diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp index 4dffc8d9ecb..972a79bb609 100644 --- a/clang/test/SemaCXX/class.cpp +++ b/clang/test/SemaCXX/class.cpp @@ -120,7 +120,7 @@ struct C4 { struct S { void f(); // expected-note 1 {{previous declaration}} - void S::f() {} // expected-warning {{extra qualification on member}} expected-error {{class member cannot be redeclared}} expected-note {{previous declaration}} expected-note {{previous definition}} + void S::f() {} // expected-error {{extra qualification on member}} expected-error {{class member cannot be redeclared}} expected-note {{previous declaration}} expected-note {{previous definition}} void f() {} // expected-error {{class member cannot be redeclared}} expected-error {{redefinition}} }; diff --git a/clang/test/SemaCXX/nested-name-spec.cpp b/clang/test/SemaCXX/nested-name-spec.cpp index b35e3822863..7239646d8d7 100644 --- a/clang/test/SemaCXX/nested-name-spec.cpp +++ b/clang/test/SemaCXX/nested-name-spec.cpp @@ -159,7 +159,7 @@ namespace N { void f(); // FIXME: if we move this to a separate definition of N, things break! } -void ::global_func2(int) { } // expected-warning{{extra qualification on member 'global_func2'}} +void ::global_func2(int) { } // expected-error{{extra qualification on member 'global_func2'}} void N::f() { } // okay @@ -245,15 +245,15 @@ namespace PR7133 { } class CLASS { - void CLASS::foo2(); // expected-warning {{extra qualification on member 'foo2'}} + void CLASS::foo2(); // expected-error {{extra qualification on member 'foo2'}} }; namespace PR8159 { class B { }; class A { - int A::a; // expected-warning{{extra qualification on member 'a'}} - static int A::b; // expected-warning{{extra qualification on member 'b'}} + int A::a; // expected-error{{extra qualification on member 'a'}} + static int A::b; // expected-error{{extra qualification on member 'b'}} int ::c; // expected-error{{non-friend class member 'c' cannot have a qualified name}} }; } |