Make the -verify bits in this test actually test something, and fix a few cases

where the test didn't work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142563 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Smith 2011-10-20 01:41:28 +00:00
Родитель 85037d987a
Коммит 98e13eac13
1 изменённых файлов: 12 добавлений и 11 удалений

Просмотреть файл

@ -1,6 +1,7 @@
// RUN: %clang_cc1 -pedantic -Wall -verify -fcxx-exceptions -x c++ %s
// RUN: cp %s %t
// RUN: not %clang_cc1 -pedantic -Wall -fixit -x c++ %t
// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -x c++ %t
// RUN: not %clang_cc1 -pedantic -Wall -fcxx-exceptions -fixit -x c++ %t
// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -fcxx-exceptions -x c++ %t
/* This is a test of the various code modification hints that are
provided as part of warning or extension diagnostics. All of the
@ -28,7 +29,7 @@ public:
struct CT<0> { }; // expected-error{{'template<>'}}
template<> class CT<1> { }; // expected-error{{tag type}}
template<> union CT<1> { }; // expected-error{{tag type}}
// Access declarations
class A {
@ -40,7 +41,7 @@ class B : public A {
A::foo; // expected-warning{{access declarations are deprecated}}
};
void f() throw();
void f() throw(); // expected-note{{previous}}
void f(); // expected-warning{{missing exception specification}}
namespace rdar7853795 {
@ -63,7 +64,7 @@ namespace rdar7796492 {
// extra qualification on member
class C {
int C::foo();
int C::foo(); // expected-warning {{extra qualification}}
};
namespace rdar8488464 {
@ -104,7 +105,7 @@ void test (BD &br) {
AD* aPtr;
BD b;
aPtr = b; // expected-error {{assigning to 'AD *' from incompatible type 'BD'; take the address with &}}
aPtr = br; // expected-error {{assigning to 'A *' from incompatible type 'B'; take the address with &}}
aPtr = br; // expected-error {{assigning to 'AD *' from incompatible type 'BD'; take the address with &}}
}
void foo1() const {} // expected-error {{type qualifier is not allowed on this function}}
@ -114,13 +115,13 @@ void foo3() const volatile {} // expected-error {{type qualifier is not allowed
struct S { void f(int, char); };
int itsAComma,
itsAComma2 = 0,
oopsAComma(42), // expected-error {{expected ';' after declaration}}
oopsAComma(42), // expected-error {{expected ';' at end of declaration}}
AD oopsMoreCommas() {
static int n = 0,
static int n = 0, // expected-error {{expected ';' at end of declaration}}
static char c,
&d = c, // expected-error {{expected ';' after declaration}}
S s, // expected-error {{expected ';' after declaration}}
&d = c, // expected-error {{expected ';' at end of declaration}}
S s, // expected-error {{expected ';' at end of declaration}}
s.f(n, d);
AD ad, // expected-error {{expected ';' after declaration}}
AD ad, // expected-error {{expected ';' at end of declaration}}
return ad;
}