re PR testsuite/25241 ([C++] DejaGNU does not distinguish between errors and warnings)

PR testsuite/25241
	* testsuite/g++.dg/charset/attribute2.c: Replace dg-error with
	dg-warning or vice versa.
	* testsuite/g++.dg/conversion/dr195.C: Ditto.
	* testsuite/g++.dg/cpp0x/variadic60.C: Ditto.
	* testsuite/g++.dg/expr/cast2.C: Ditto.
	* testsuite/g++.dg/ext/anon-struct4.C: Ditto.
	* testsuite/g++.dg/ext/member-attr.C: Ditto.
	* testsuite/g++.dg/ext/utf-array.C: Ditto.
	* testsuite/g++.dg/ext/utf-array-short-wchar.C: Ditto.
	* testsuite/g++.dg/ext/utf-typedef-cxx0x.C: Ditto.
	* testsuite/g++.dg/ext/visibility/redecl1.C: Ditto.
	* testsuite/g++.dg/ext/visibility/warn4.C: Ditto.
	* testsuite/g++.dg/parse/defarg11.C: Ditto.
	* testsuite/g++.dg/template/error17.C: Ditto.
	* testsuite/g++.dg/warn/pedantic2.C: Ditto.
	* testsuite/g++.dg/warn/pr21983.C: Ditto.
	* testsuite/g++.dg/warn/return-reference2.C: Ditto.
	* testsuite/g++.old-deja/g++.bob/inherit1.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/crash13.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/crash17.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/crash52.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/crash55.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/enum7.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/operators4.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/template17.C: Ditto.
	* testsuite/g++.old-deja/g++.brendan/warnings1.C: Ditto.
	* testsuite/g++.old-deja/g++.bugs/900205_03.C: Ditto.
	* testsuite/g++.old-deja/g++.bugs/900227_01.C: Ditto.
	* testsuite/g++.old-deja/g++.ext/arrnew.C: Ditto.
	* testsuite/g++.old-deja/g++.ext/attrib4.C: Ditto.
	* testsuite/g++.old-deja/g++.jason/cond.C: Ditto.
	* testsuite/g++.old-deja/g++.jason/operator.C: Ditto.
	* testsuite/g++.old-deja/g++.jason/report.C: Ditto.
	* testsuite/g++.old-deja/g++.law/friend5.C: Ditto.
	* testsuite/g++.old-deja/g++.law/temps1.C: Ditto.
	* testsuite/g++.old-deja/g++.law/union4.C: Ditto.
	* testsuite/g++.old-deja/g++.martin/pure1.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/empty.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/for2.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/misc9.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/p10769b.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/p2855.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/p3060c.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/p700.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/p9732c.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/pmf6.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/warn1.C: Ditto.
	* testsuite/g++.old-deja/g++.mike/warn5.C: Ditto.
	* testsuite/g++.old-deja/g++.niklas/t141.C: Ditto.
	* testsuite/g++.old-deja/g++.other/cast6.C: Ditto.
	* testsuite/g++.old-deja/g++.other/cond5.C: Ditto.
	* testsuite/g++.old-deja/g++.other/conv8.C: Ditto.
	* testsuite/g++.old-deja/g++.other/decl5.C: Ditto.
	* testsuite/g++.old-deja/g++.other/delete2.C: Ditto.
	* testsuite/g++.old-deja/g++.other/delete4.C: Ditto.
	* testsuite/g++.old-deja/g++.other/linkage1.C: Ditto.
	* testsuite/g++.old-deja/g++.other/ptrmem8.C: Ditto.
	* testsuite/g++.old-deja/g++.other/typename1.C: Ditto.
	* testsuite/g++.old-deja/g++.pt/typename14.C: Ditto.
	* testsuite/g++.old-deja/g++.pt/typename4.C: Ditto.
	* testsuite/g++.old-deja/g++.pt/typename5.C: Ditto.
	* testsuite/g++.old-deja/g++.pt/typename7.C: Ditto.

From-SVN: r140405
This commit is contained in:
Janis Johnson 2008-09-17 00:06:57 +00:00 committed by Janis Johnson
parent 1edd1a8317
commit d0488d176b
62 changed files with 259 additions and 170 deletions

View File

@ -1,3 +1,69 @@
2008-09-16 Janis Johnson <janis187@us.ibm.com>
PR testsuite/25241
* testsuite/g++.dg/charset/attribute2.c: Replace dg-error with
dg-warning or vice versa.
* testsuite/g++.dg/conversion/dr195.C: Ditto.
* testsuite/g++.dg/cpp0x/variadic60.C: Ditto.
* testsuite/g++.dg/expr/cast2.C: Ditto.
* testsuite/g++.dg/ext/anon-struct4.C: Ditto.
* testsuite/g++.dg/ext/member-attr.C: Ditto.
* testsuite/g++.dg/ext/utf-array.C: Ditto.
* testsuite/g++.dg/ext/utf-array-short-wchar.C: Ditto.
* testsuite/g++.dg/ext/utf-typedef-cxx0x.C: Ditto.
* testsuite/g++.dg/ext/visibility/redecl1.C: Ditto.
* testsuite/g++.dg/ext/visibility/warn4.C: Ditto.
* testsuite/g++.dg/parse/defarg11.C: Ditto.
* testsuite/g++.dg/template/error17.C: Ditto.
* testsuite/g++.dg/warn/pedantic2.C: Ditto.
* testsuite/g++.dg/warn/pr21983.C: Ditto.
* testsuite/g++.dg/warn/return-reference2.C: Ditto.
* testsuite/g++.old-deja/g++.bob/inherit1.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/crash13.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/crash17.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/crash52.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/crash55.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/enum7.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/operators4.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/template17.C: Ditto.
* testsuite/g++.old-deja/g++.brendan/warnings1.C: Ditto.
* testsuite/g++.old-deja/g++.bugs/900205_03.C: Ditto.
* testsuite/g++.old-deja/g++.bugs/900227_01.C: Ditto.
* testsuite/g++.old-deja/g++.ext/arrnew.C: Ditto.
* testsuite/g++.old-deja/g++.ext/attrib4.C: Ditto.
* testsuite/g++.old-deja/g++.jason/cond.C: Ditto.
* testsuite/g++.old-deja/g++.jason/operator.C: Ditto.
* testsuite/g++.old-deja/g++.jason/report.C: Ditto.
* testsuite/g++.old-deja/g++.law/friend5.C: Ditto.
* testsuite/g++.old-deja/g++.law/temps1.C: Ditto.
* testsuite/g++.old-deja/g++.law/union4.C: Ditto.
* testsuite/g++.old-deja/g++.martin/pure1.C: Ditto.
* testsuite/g++.old-deja/g++.mike/empty.C: Ditto.
* testsuite/g++.old-deja/g++.mike/for2.C: Ditto.
* testsuite/g++.old-deja/g++.mike/misc9.C: Ditto.
* testsuite/g++.old-deja/g++.mike/p10769b.C: Ditto.
* testsuite/g++.old-deja/g++.mike/p2855.C: Ditto.
* testsuite/g++.old-deja/g++.mike/p3060c.C: Ditto.
* testsuite/g++.old-deja/g++.mike/p700.C: Ditto.
* testsuite/g++.old-deja/g++.mike/p9732c.C: Ditto.
* testsuite/g++.old-deja/g++.mike/pmf6.C: Ditto.
* testsuite/g++.old-deja/g++.mike/warn1.C: Ditto.
* testsuite/g++.old-deja/g++.mike/warn5.C: Ditto.
* testsuite/g++.old-deja/g++.niklas/t141.C: Ditto.
* testsuite/g++.old-deja/g++.other/cast6.C: Ditto.
* testsuite/g++.old-deja/g++.other/cond5.C: Ditto.
* testsuite/g++.old-deja/g++.other/conv8.C: Ditto.
* testsuite/g++.old-deja/g++.other/decl5.C: Ditto.
* testsuite/g++.old-deja/g++.other/delete2.C: Ditto.
* testsuite/g++.old-deja/g++.other/delete4.C: Ditto.
* testsuite/g++.old-deja/g++.other/linkage1.C: Ditto.
* testsuite/g++.old-deja/g++.other/ptrmem8.C: Ditto.
* testsuite/g++.old-deja/g++.other/typename1.C: Ditto.
* testsuite/g++.old-deja/g++.pt/typename14.C: Ditto.
* testsuite/g++.old-deja/g++.pt/typename4.C: Ditto.
* testsuite/g++.old-deja/g++.pt/typename5.C: Ditto.
* testsuite/g++.old-deja/g++.pt/typename7.C: Ditto.
2008-09-16 Jakub Jelinek <jakub@redhat.com>
Adam Nemet <anemet@caviumnetworks.com>

View File

@ -4,5 +4,5 @@
/* { dg-do compile }
{ dg-require-iconv "IBM1047" }
*/
int foo __attribute__ ((walrus)); /* { dg-error "walrus" "ignored" } */
int foo __attribute__ ((walrus)); /* { dg-warning "walrus" "ignored" } */
char x[] = "foobar";

View File

@ -22,8 +22,8 @@ void foo ()
pv = reinterpret_cast <PV>(pf); // { dg-warning "casting between" "" }
/* the following two might or might not be ok with 195. */
pf = reinterpret_cast <PF>(po); // { dg-error "casting between" "" }
po = reinterpret_cast <PO>(pf); // { dg-error "casting between" "" }
pf = reinterpret_cast <PF>(po); // { dg-warning "casting between" "" }
po = reinterpret_cast <PO>(pf); // { dg-warning "casting between" "" }
/* These will never be ok, as they are implicit. */
pv = pf; // { dg-error "invalid conversion" "" }

View File

@ -1 +1 @@
template<typename... Args> class tuple; // { dg-warning "variadic templates" }
template<typename... Args> class tuple; // { dg-error "variadic templates" }

View File

@ -1,5 +1,5 @@
void (*p)();
void f() {
(void *)p; // { dg-error "" }
(void *)p; // { dg-warning "forbids cast" }
}

View File

@ -1,3 +1,4 @@
// PR c++/14401
struct { struct { int& i ; } bar ; } foo ; // { dg-error "" }
struct { struct { int& i ; } bar ; } foo ; // { dg-error "uninitialized" "uninit" }
// { dg-warning "anonymous" "anon" { target *-*-* } 3 }

View File

@ -9,6 +9,6 @@
class T {
public:
__attribute__ ((garbage1)) void member1(int) {} /* { dg-error "'garbage1' attribute directive ignored" "" } */
void __attribute__ ((garbage2)) member2(int) {} /* { dg-error "'garbage2' attribute directive ignored" "" } */
__attribute__ ((garbage1)) void member1(int) {} /* { dg-warning "'garbage1' attribute directive ignored" "" } */
void __attribute__ ((garbage2)) member2(int) {} /* { dg-warning "'garbage2' attribute directive ignored" "" } */
};

View File

@ -13,9 +13,9 @@ const char16_t s16_1[] = u"ab";
const char16_t s16_2[] = U"ab"; /* { dg-error "from incompatible" } */
const char16_t s16_3[] = L"ab"; /* { dg-error "from incompatible" } */
const char16_t s16_4[0] = u"ab"; /* { dg-warning "chars is too long" } */
const char16_t s16_5[1] = u"ab"; /* { dg-warning "chars is too long" } */
const char16_t s16_6[2] = u"ab"; /* { dg-warning "chars is too long" } */
const char16_t s16_4[0] = u"ab"; /* { dg-error "chars is too long" } */
const char16_t s16_5[1] = u"ab"; /* { dg-error "chars is too long" } */
const char16_t s16_6[2] = u"ab"; /* { dg-error "chars is too long" } */
const char16_t s16_7[3] = u"ab";
const char16_t s16_8[4] = u"ab";
@ -24,9 +24,9 @@ const char32_t s32_1[] = u"ab"; /* { dg-error "from incompatible" } */
const char32_t s32_2[] = U"ab";
const char32_t s32_3[] = L"ab"; /* { dg-error "from incompatible" } */
const char32_t s32_4[0] = U"ab"; /* { dg-warning "chars is too long" } */
const char32_t s32_5[1] = U"ab"; /* { dg-warning "chars is too long" } */
const char32_t s32_6[2] = U"ab"; /* { dg-warning "chars is too long" } */
const char32_t s32_4[0] = U"ab"; /* { dg-error "chars is too long" } */
const char32_t s32_5[1] = U"ab"; /* { dg-error "chars is too long" } */
const char32_t s32_6[2] = U"ab"; /* { dg-error "chars is too long" } */
const char32_t s32_7[3] = U"ab";
const char32_t s32_8[4] = U"ab";

View File

@ -13,9 +13,9 @@ const char16_t s16_1[] = u"ab";
const char16_t s16_2[] = U"ab"; /* { dg-error "from incompatible" } */
const char16_t s16_3[] = L"ab"; /* { dg-error "from incompatible" } */
const char16_t s16_4[0] = u"ab"; /* { dg-warning "chars is too long" } */
const char16_t s16_5[1] = u"ab"; /* { dg-warning "chars is too long" } */
const char16_t s16_6[2] = u"ab"; /* { dg-warning "chars is too long" } */
const char16_t s16_4[0] = u"ab"; /* { dg-error "chars is too long" } */
const char16_t s16_5[1] = u"ab"; /* { dg-error "chars is too long" } */
const char16_t s16_6[2] = u"ab"; /* { dg-error "chars is too long" } */
const char16_t s16_7[3] = u"ab";
const char16_t s16_8[4] = u"ab";
@ -24,9 +24,9 @@ const char32_t s32_1[] = u"ab"; /* { dg-error "from incompatible" } */
const char32_t s32_2[] = U"ab";
const char32_t s32_3[] = L"ab"; /* { dg-error "from incompatible" } */
const char32_t s32_4[0] = U"ab"; /* { dg-warning "chars is too long" } */
const char32_t s32_5[1] = U"ab"; /* { dg-warning "chars is too long" } */
const char32_t s32_6[2] = U"ab"; /* { dg-warning "chars is too long" } */
const char32_t s32_4[0] = U"ab"; /* { dg-error "chars is too long" } */
const char32_t s32_5[1] = U"ab"; /* { dg-error "chars is too long" } */
const char32_t s32_6[2] = U"ab"; /* { dg-error "chars is too long" } */
const char32_t s32_7[3] = U"ab";
const char32_t s32_8[4] = U"ab";

View File

@ -1,7 +1,7 @@
/* Contributed by Kris Van Hees <kris.van.hees@oracle.com> */
/* Ensure that a typedef to char16_t/char32_t issues a warning in c++0x. */
/* Ensure that a typedef to char16_t/char32_t issues an error in c++0x. */
/* { dg-do compile } */
/* { dg-options "-std=c++0x" } */
typedef short unsigned int char16_t; /* { dg-warning "redeclaration" } */
typedef unsigned int char32_t; /* { dg-warning "redeclaration" } */
typedef short unsigned int char16_t; /* { dg-error "redeclaration" } */
typedef unsigned int char32_t; /* { dg-error "redeclaration" } */

View File

@ -1,7 +1,7 @@
// Test that we complain about redeclaration with different visibility
struct __attribute((visibility("hidden"))) B;
struct __attribute((visibility("default"))) B; // { dg-warning "visibility" }
struct __attribute((visibility("default"))) B; // { dg-error "visibility" }
__attribute ((visibility ("hidden"))) void f(); // { dg-warning "previous" }
__attribute ((visibility ("default"))) void f(); // { dg-warning "visibility" }

View File

@ -1,4 +1,4 @@
// Error if we try to give an instantiation visibility after it's already
// Warn if we try to give an instantiation visibility after it's already
// been instantiated.
// { dg-require-visibility "" }
@ -7,4 +7,4 @@ template <class T> struct A { void f (T); };
template <class T> void A<T>::f (T) { }
A<double> ad;
template struct __attribute ((visibility ("hidden"))) A<double>; // { dg-error "already defined" }
template struct __attribute ((visibility ("hidden"))) A<double>; // { dg-warning "already defined" }

View File

@ -4,6 +4,6 @@
class foo {
public:
void operator& (int = 1); // { dg-error "default argument" }
void operator++ (int = 2); // { dg-error "default argument" }
void operator-- (int = 3); // { dg-error "default argument" }
void operator++ (int = 2); // { dg-warning "default argument" }
void operator-- (int = 3); // { dg-warning "default argument" }
};

View File

@ -4,5 +4,7 @@ template <typename T>
void
foo()
{
union { struct { }; }; // { dg-error "" }
union { struct { }; }; // { dg-error "prohibits anonymous struct" "anon" }
// { dg-error "not inside" "not inside" { target *-*-* } 7 }
// { dg-warning "no members" "no members" { target *-*-* } 7 }
}

View File

@ -5,6 +5,6 @@ class foo
foo() {};
void bar() {};
foo(int) {};; // { dg-error "extra" }
void bar(int) {};; // { dg-error "extra" }
foo(int) {};; // { dg-warning "extra" }
void bar(int) {};; // { dg-warning "extra" }
};

View File

@ -4,4 +4,4 @@
struct B { virtual void foo () = 0; };
struct D1 : public virtual B { virtual void foo () {} };
struct D2 : public virtual B { virtual void foo () {} };
struct D : public D1, public D2 { }; // { dg-warning "no unique final overrider" }
struct D : public D1, public D2 { }; // { dg-error "no unique final overrider" }

View File

@ -10,12 +10,12 @@ public:
int &f()
{
A a; // { dg-error "local" }
A a; // { dg-warning "local" }
return a.second;
}
int &g()
{
int ar[42]; // { dg-error "local" }
int ar[42]; // { dg-warning "local" }
return ar[20];
}

View File

@ -11,7 +11,8 @@ public:
class B : public A {
public:
char* m1 () { C::m1(); return ""; } // { dg-error "" }
char* m1 () { C::m1(); return ""; } // { dg-error "cannot call" }
// { dg-warning "deprecated" "depr" { target *-*-* } 14 }
};
int main () {

View File

@ -31,7 +31,7 @@ gen_op Spul_U_axis()
{
gen_op U1;
U1 = Fe();
} // { dg-error "" } reaches end of non-void function
} // { dg-warning "no return" } reaches end of non-void function
int
main () {}

View File

@ -30,6 +30,6 @@ class GnWidget : public GnObject {
virtual ~GnWidget();
};
class GnOptionGroup : public GnObject, public GnWidget {// { dg-error "" } warning
class GnOptionGroup : public GnObject, public GnWidget {// { dg-warning "inaccessible" }
};

View File

@ -5,9 +5,9 @@
class A {
public:
friend A f(A &a);// { dg-error "" } ambiguates.*
friend A f(A &a);// { dg-error "ambiguates" }
};
A &f(A &a) {// { dg-error "" } new decl.*
A &f(A &a) {// { dg-error "new decl" }
std::cout << "Blah\n";
} // { dg-error "no return statement" }
} // { dg-warning "no return statement" }

View File

@ -4,7 +4,7 @@
int& f(int x) // { dg-error "new declaration" }
{
int local; // { dg-error "reference to local" }
int local; // { dg-warning "reference to local" }
local = x+2;

View File

@ -3,5 +3,5 @@
enum color { red, green, blue, orange, brown };
struct s {
enum color field:2; // { dg-error "" } too small
enum color field:2; // { dg-warning "too small" }
};

View File

@ -54,11 +54,11 @@ int main ()
if (test3 (vp))
return fail ();
ptr_to_method_of_char p2 = &base::method;
vp = (void*) p2; // { dg-error "" }
vp = (void*) p2; // { dg-warning "converting" }
if (test4 (vp))
return fail ();
ptr_to_method_of_float p3 = &base::method;
vp = (void*) p3; // { dg-error "" }
vp = (void*) p3; // { dg-warning "converting" }
if (test5 (vp))
return fail ();
@ -83,7 +83,7 @@ int test3 (void* vp)
int test4 (void* vp)
{
char ch = 'x';
ptr_to_method_of_char p = (ptr_to_method_of_char) vp; // { dg-error "" } bad type conversion
ptr_to_method_of_char p = (ptr_to_method_of_char) vp; // { dg-error "invalid cast" } bad type conversion
return ((base_ptr->*p)(ch) != 9904);
}
@ -91,7 +91,7 @@ int test4 (void* vp)
int test5 (void* vp)
{
float flt = 9.9;
ptr_to_method_of_float p = (ptr_to_method_of_float) vp; // { dg-error "" } bad type conversion
ptr_to_method_of_float p = (ptr_to_method_of_float) vp; // { dg-error "invalid cast" } bad type conversion
if ((base_ptr->*p)(flt) != 9905) {
return 1;

View File

@ -8,5 +8,8 @@ public:
static unsigned sequence_number;
};
const Regex NDAMName<'L'>::pattern("^[Ll](.*)$", 1);// { dg-error "" } type/value.*
unsigned NDAMName<'L'>::sequence_number = 0;// { dg-error "" } type/value
const Regex NDAMName<'L'>::pattern("^[Ll](.*)$", 1);// { dg-error "type/value mismatch" "mismatch" }
// { dg-error "expected a type" "expected" { target *-*-* } 11 }
// { dg-warning "deprecated" "depr" { target *-*-* } 11 }
unsigned NDAMName<'L'>::sequence_number = 0;// { dg-error "type/value mismatch" "mismatch" }
// { dg-error "expected a type" "exp" { target *-*-* } 14 }

View File

@ -2,6 +2,6 @@
// { dg-options "-Wctor-dtor-privacy" }
// GROUPS passed warnings
// there should be a warning about foo only defining private methods
class foo { // { dg-error "" } .*
class foo { // { dg-warning "private" }
int bar();
};

View File

@ -18,18 +18,18 @@
struct struct00 { };
int global_function_0 () {
} // { dg-error "" }
} // { dg-warning "no return" }
struct00 global_function_1 () {
} // { dg-error "" }
} // { dg-warning "no return" }
struct struct0 {
int struct0_member_function_0 () {
} // { dg-error "" }
} // { dg-warning "no return" }
struct0 struct0_member_function_1 () {
} // { dg-error "" }
} // { dg-warning "no return" }
};
struct struct1 {
@ -41,9 +41,9 @@ struct struct1 {
};
int struct1_member_function_0 () {
} // { dg-error "" }
} // { dg-warning "no return" }
struct1 struct1::struct1_member_function_1 () {
} // { dg-error "" }
} // { dg-warning "no return" }
int main () { return 0; }

View File

@ -33,7 +33,9 @@
int main ();
short s = (short) &main; // { dg-warning "" "" { xfail h8*-*-* xstormy16-*-* } } small integer
char c = (char) &main; // { dg-warning "" } small integer
short s = (short) &main; // { dg-error "taking address" "addr" { xfail h8*-*-* xstormy16-*-* } }
// { dg-error "loses precision" "lose" { xfail h8*-*-* xstormy16-*-* } 36 }
char c = (char) &main; // { dg-error "taking address" }
// { dg-error "loses precision" "lose" { target *-*-* } 38 }
int main () { return 0; }

View File

@ -3,5 +3,6 @@
// PRMS Id: 4992
int *f(){
return new int[1] = { 1 }; // { dg-error "" } removed
return new int[1] = { 1 }; // { dg-error "lvalue" "err" }
// { dg-warning "extended init" "warn" { target *-*-* } 6 }
}

View File

@ -7,18 +7,18 @@
#define PF __attribute__ ((format (printf, 1, 2)))
struct A {
static PF void f (char *, ...);
friend PF void g (char *, ...);
static PF void f (const char *, ...);
static PF void g (const char *, ...) { }
static void test ();
};
void PF h (char *, ...);
void PF k (char *, ...) { }
void PF h (const char *, ...);
void PF k (const char *, ...) { }
void A::test ()
{
f ("%f", 42); // { dg-warning "" }
g ("%f", 42); // { dg-warning "" }
h ("%f", 42); // { dg-warning "" }
k ("%f", 42); // { dg-warning "" }
f ("%f", 42); // { dg-warning "argument 2" }
g ("%f", 42); // { dg-warning "argument 2" }
h ("%f", 42); // { dg-warning "argument 2" }
k ("%f", 42); // { dg-warning "argument 2" }
}

View File

@ -17,14 +17,14 @@ int main()
char j;
}
while (int i = 0) // { dg-error "" }
while (int i = 0) // { dg-error "previously" }
{
int i; // { dg-error "" }
int i; // { dg-error "redeclaration" }
}
for (; int i = 0; ) // { dg-error "" }
for (; int i = 0; ) // { dg-error "previously" }
{
int i; // { dg-error "" }
int i; // { dg-error "redeclaration" }
}
switch (int i = 0) // { dg-error "" "" { xfail *-*-* } }
@ -33,12 +33,14 @@ int main()
int i; // { dg-error "" "" { xfail *-*-* } }
}
if (struct A { operator int () { return 1; } } *foo = new A) // { dg-error "" }
if (struct A { operator int () { return 1; } } *foo = new A) // { dg-error "defined" }
;
A bar; // { dg-error "" }
A bar; // { dg-error "not declared" "decl" }
// { dg-error "expected" "exp" { target *-*-* } 39 }
if (enum A { one, two, three } foo = one) // { dg-error "" }
if (enum A { one, two, three } foo = one) // { dg-error "defined" "def" }
// { dg-error "declared" "decl" { target *-*-* } 42 }
;
struct B { operator int () { return 2; } };
@ -46,10 +48,11 @@ int main()
if (struct B * foo = new B)
;
if (int f () = 1) // { dg-error "" }
if (int f () = 1) // { dg-warning "extern" "extern" }
// { dg-error "is initialized like a variable" "var" { target *-*-* } 51 }
;
if (int a[2] = {1, 2}) // { dg-error "" }
if (int a[2] = {1, 2}) // { dg-error "extended init" }
;
}

View File

@ -5,11 +5,11 @@
typedef __SIZE_TYPE__ size_t;
struct A {
int operator?:(int a, int b); // { dg-warning "" }
static int operator()(int a); // { dg-error "" } must be nonstatic
static int operator+(A,A); // { dg-error "" } must be nonstatic
int operator+(int a, int b = 1); // { dg-error "" } two errors on this line
int operator++(char); // { dg-error "" } must take 'int'
int operator?:(int a, int b); // { dg-error "expected type-specifier" }
static int operator()(int a); // { dg-error "must be a nonstatic member" }
static int operator+(A,A); // { dg-error "either a non-static member" }
int operator+(int a, int b = 1); // { dg-error "either zero or one" }
int operator++(char); // { dg-error "must take 'int'" }
void operator delete (void *);
void operator delete (void *, unsigned long);
};
@ -23,9 +23,10 @@ struct B {
B * operator->();
};
int operator-(int a, int b); // { dg-error "" } no class argument
int operator-(int a, int b); // { dg-error "argument of class or" }
void * operator new (A a); // { dg-error "" } invalid first argument
void operator delete (A a); // { dg-error "" } ditto
void * operator new (A a); // { dg-error "first parameter" }
void operator delete (A a); // { dg-error "first parameter" }
char * operator char * (int); // { dg-error "" } return value, nonmember
char * operator char * (int); // { dg-error "return type" "ret" }
// { dg-error "nonstatic member function" "mem" { target *-*-* } 31 }

View File

@ -56,7 +56,7 @@ bar2 baz (X::Y y) // { dg-error "" } in this context
bar2 wa [5];
wa[0] = baz(f);
undef2 (1); // { dg-error "" } implicit declaration
} // { dg-error "no return statement" }
} // { dg-warning "no return statement" }
int ninny ()
{
@ -71,4 +71,4 @@ int ninny ()
int darg (char X::*p)
{
undef3 (1); // { dg-error "" } implicit declaration
} // { dg-error "no return statement" }
} // { dg-warning "no return statement" }

View File

@ -16,10 +16,10 @@
int good_friend(int)
{
obj.parts = 0;
} // { dg-error "" } non-void
} // { dg-warning "non-void" }
int bad_friend()
{
obj.parts = 0;
} // { dg-error "" } non-void
} // { dg-warning "non-void" }

View File

@ -15,4 +15,5 @@ struct cookie
cookie ( foo * x) { v=x; }
};
cookie cat(&foo("apabepa"));// { dg-error "" } .*
cookie cat(&foo("apabepa"));// { dg-warning "deprecated conversion" "dep" }
// { dg-warning "taking address of temporary" "add" { target *-*-* } 18 }

View File

@ -10,4 +10,4 @@ static union {
struct SS {
int ss;
};
};// { dg-error "" } .*
};// { dg-warning "no members" }

View File

@ -3,6 +3,6 @@ class A
{
public:
virtual void f(void) = 0; // pure virtual function.
A() {f();} // { dg-error "" } called in a constructor
~A() {f();} // { dg-error "" } called in a destructor
A() {f();} // { dg-warning "const" } called in a constructor
~A() {f();} // { dg-warning "destr" } called in a destructor
};

View File

@ -3,10 +3,10 @@
#define NOPE
void foo() {
while (1); /* { dg-error "suggest a space before " } */
while (1); /* { dg-warning "suggest a space before " } */
{
}
for (;;); /* { dg-error "suggest a space before " } */
for (;;); /* { dg-warning "suggest a space before " } */
{
}
while (1)

View File

@ -3,17 +3,20 @@
void foo() {
for (class C {};;)
;
C c; // { dg-error "" }
C c; // { dg-error "declared" "decl" }
// { dg-error "expected" "exp" { target *-*-* } 6 }
}
void bar() {
for (enum E {num};;)
;
E e; // { dg-error "" }
E e; // { dg-error "declared" "decl" }
// { dg-error "expected" "exp" { target *-*-* } 13 }
}
void bee () {
int i = 0;
for (int fun() = 0; i != 2; ++i) { // { dg-error "" }
for (int fun() = 0; i != 2; ++i) { // { dg-warning "extern" "extern" }
// { dg-error "initialized" "init" { target *-*-* } 19 }
}
}

View File

@ -3,11 +3,11 @@
// GROUPS passed qualifiers
class bee {
public:
int bee::bar; // { dg-warning "" } there is an extra bee:: here
int bee::bar; // { dg-error "extra" } there is an extra bee:: here
};
class foo {
public:
int bee::bar; // { dg-error "" } you cannot do this
int bee::bar; // { dg-error "not derived" } you cannot do this
int me();
};

View File

@ -17,10 +17,11 @@ public:
void A::main() {
void (B::*mPtrB)(B*);
(*(void (*)(A*))PMF2PF(mPtrB))(&b); // { dg-error "" }
(*(void (*)(A*))PMF2PF(mPtrB))(&b); // { dg-error "argument passing" }
// { dg-warning "convert" "warn" { target *-*-* } 20 }
}
int main() {
void (A::*mPtr)() = &A::f1a;
(*(void (*)(A*))PMF2PF(mPtr))(&a); // { dg-error "" }
(*(void (*)(A*))PMF2PF(mPtr))(&a); // { dg-warning "convert" }
}

View File

@ -16,6 +16,6 @@ Ctest::operator const char *() const
int main()
{
Ctest obj;
char* temp = (char *)obj; // { dg-warning "" }
char* temp = (char *)obj; // { dg-error "invalid cast" }
temp[0] = '\0';
}

View File

@ -11,7 +11,7 @@ class Foo
operator int ();
};
int Foo::operator int() { return x; } // { dg-warning "" } can't specify return type
int Foo::operator int() { return x; } // { dg-error "return" } can't specify return type
Foo foo(10, 11);

View File

@ -223,7 +223,7 @@ inline void Int::operator >>=(const int b)
{ rep >>= b; ; }
inline int& operator = (int& a, const Int & b) // { dg-warning "" }
inline int& operator = (int& a, const Int & b) // { dg-error "" }
{ a = b.Int::val(); return a;}
inline int& operator += (int& a, const Int & b)
{ a += b.Int::val(); return a; }
@ -562,7 +562,7 @@ inline void Char::operator >>=(const char b)
{ rep >>= b; ; }
inline char& operator = (char& a, const Char & b) // { dg-warning "" }
inline char& operator = (char& a, const Char & b) // { dg-error "" }
{ a = b.Char::val(); return a;}
inline char& operator += (char& a, const Char & b)
{ a += b.Char::val(); return a; }

View File

@ -2,4 +2,4 @@
// prms-id: 9732
struct foo {};
foo& x() { return foo(); } // { dg-warning "" }
foo& x() { return foo(); } // { dg-error "invalid init" }

View File

@ -5,9 +5,9 @@ class S {
public:
void (S::*pmf)();
void foo() {
pmf(); // { dg-warning "" }
pmf(); // { dg-error "pointer-to-member" }
}
static void foo1(S* sp) {
(sp->pmf)(); // { dg-error "" }
(sp->pmf)(); // { dg-error "pointer-to-member" }
}
};

View File

@ -9,6 +9,6 @@ int *pp=&i;
void foo() { }
int main()
{
charptr(*pp)++; // { dg-warning "" }
charptr(*pp)++; // { dg-error "lvalue" }
return 0;
}

View File

@ -12,10 +12,10 @@ struct A {
typedef void (A::*pmf)();
static int mememe = &A::foo - &A::bar; // { dg-warning "" }
pmf b = &A::foo-1; // { dg-warning "" }
static int mememe = &A::foo - &A::bar; // { dg-error "invalid operands" }
pmf b = &A::foo-1; // { dg-error "invalid operands" }
int main() {
double y;
y=X(Y-Z); // { dg-warning "" }
y=X(Y-Z); // { dg-error "pointer to a function" }
}

View File

@ -2,5 +2,5 @@
// { dg-options "-Wshadow" }
// GROUPS passed niklas scoping ARM
class X { X (int); };
void X (int);// { dg-error "" } .*hides constructor.*
void X (int);// { dg-warning "hides constructor" }
void f () { X (1); }

View File

@ -41,16 +41,16 @@ int main ()
{
{
foofPtr fp = &foo::b;
barfPtr bp = static_cast <barfPtr> (fp); // { dg-error "" } invalid static_cast
foofPtr fp2 = static_cast <foofPtr> (bp); // { dg-error "" } invalid static_cast
foofPtr fp3 = bp; // { dg-error "" } cannot convert
fp3 = (foofPtr)bp; // { dg-warning "" } via virtual base
barfPtr bp = static_cast <barfPtr> (fp); // { dg-error "via virtual base" } invalid static_cast
foofPtr fp2 = static_cast <foofPtr> (bp); // { dg-error "via virtual base" } invalid static_cast
foofPtr fp3 = bp; // { dg-error "via virtual base" } cannot convert
fp3 = (foofPtr)bp; // { dg-error "via virtual base" } via virtual base
foomPtr fmp = &foo::m;
barmPtr bmp = static_cast <barmPtr> (fmp); // { dg-error "" } invalid static_cast
foomPtr fmp2 = static_cast <foomPtr> (bmp); // { dg-error "" } invalid static_cast
foomPtr fmp3 = bmp; // { dg-error "" } cannot convert
fmp3 = (foomPtr)bmp; // { dg-warning "" } via virtual base
barmPtr bmp = static_cast <barmPtr> (fmp); // { dg-error "via virtual base" } invalid static_cast
foomPtr fmp2 = static_cast <foomPtr> (bmp); // { dg-error "via virtual base" } invalid static_cast
foomPtr fmp3 = bmp; // { dg-error "via virtual base" } cannot convert
fmp3 = (foomPtr)bmp; // { dg-error "via virtual base" } via virtual base
}
return 0;

View File

@ -22,9 +22,9 @@ void fn(int i)
double d;
int j;
j = (i ? e1 : e2); // { dg-warning "" } mismatch
d = (i ? e1 : 1.0); // { dg-warning "" } mismatch
d = (i ? 1.0 : e2); // { dg-warning "" } mismatch
j = (i ? e1 : e2); // { dg-warning "mismatch" }
d = (i ? e1 : 1.0); // { dg-warning "non-enumeral" }
d = (i ? 1.0 : e2); // { dg-warning "non-enumeral" }
E1 e = (i ? e1 : e1); // ok
j = (i ? 1 : e2); // ok
j = (i ? e1 : 1); // ok
@ -35,11 +35,11 @@ void fn(int i)
(i ? throw X() : throw X()); // ok, void
(i ? i : j) = 1; // ok, int &
(i ? throw X() : j) = 1; // { dg-error "" } non lvalue
(i ? j : throw X()) = 1; // { dg-error "" } non lvalue
(i ? throw X() : throw X()) = 1; // { dg-error "" } invalid use of void
(i ? throw X() : j) = 1; // { dg-error "lvalue" }
(i ? j : throw X()) = 1; // { dg-error "lvalue" }
(i ? throw X() : throw X()) = 1; // { dg-error "lvalue" }
(i ? (void)1 : i++); // { dg-warning "" } not a throw
(i ? i++ : (void)1); // { dg-warning "" } not a throw
(i ? (void)1 : i++); // { dg-error "throw-expression" }
(i ? i++ : (void)1); // { dg-error "throw-expression" }
}

View File

@ -27,5 +27,5 @@ void foo::a()
{
typedef void(foo::*t)();
t c = & foo::b;
d = (T) c; // { dg-warning "" } pointer to member cast
d = (T) c; // { dg-error "pointer to member" }
}

View File

@ -8,40 +8,41 @@
struct A {
int A::fn(); // { dg-warning "" } extra qualification
int A::m; // { dg-warning "" } extra qualification
int A::fn(); // { dg-error "extra qualification" }
int A::m; // { dg-error "extra qualification" }
struct e;
struct A::e {int i;}; // { dg-warning "" } extra qualification
struct A::expand { // { dg-warning "" } extra qualification
struct A::e {int i;}; // { dg-error "extra qualification" "qual" }
// { dg-error "anonymous struct" "anon" { target *-*-* } 14 }
struct A::expand { // { dg-error "qualified name" }
int m;
};
struct Z;
expand me; // { dg-error "error: 'expand' does not name a type" }
expand me; // { dg-error "'expand' does not name a type" }
void foo(struct A::e);
void foo(struct A::z); // { dg-warning "" } extra qualification
void foo(struct A::z); // { dg-error "does not name a type" }
};
struct Q;
struct B {
struct A::fink { // { dg-error "" } no such member
struct A::fink { // { dg-error "does not name a class before" }
int m;
};
struct A::Z { // { dg-error "" } A::Z not a member of B
struct A::Z { // { dg-error "does not enclose" } A::Z not a member of B
int m;
};
int m;
int n;
struct ::Q { // { dg-error "" } ::Q not a member of B
struct ::Q { // { dg-error "global qual" } ::Q not a member of B
int m;
};
int A::fn() { // { dg-error "" } A::fn not a member of B
int A::fn() { // { dg-error "cannot define member" } A::fn not a member of B
return 0;
}
void fn(struct ::Q &);
void foo(struct A::y); // { dg-error "" } no such member
void foo(struct A::y); // { dg-error "does not name a type" } no such member
};
struct ::C { // { dg-warning "" } extra qualification
struct ::C { // { dg-error "invalid before" } extra qualification
int i;
};
@ -52,26 +53,26 @@ namespace N {
namespace NMS
{
void NMS::fn(); // { dg-warning "" "" } extra qualification
int NMS::i; // { dg-warning "" "" } extra qualification
struct NMS::D { // { dg-warning "" } extra qualification
void NMS::fn(); // { dg-error "explicit qual" }
int NMS::i; // { dg-error "explicit qual" }
struct NMS::D { // { dg-error "does not name a class" }
int i;
};
struct N::E { // { dg-error "" } no such type
struct N::E { // { dg-error "does not name a class" } no such type
int i;
};
struct ::F { // { dg-error "" } no such type
struct ::F { // { dg-error "global qual" } no such type
int i;
};
int N::fn() { // { dg-error "" } N::fn not a member of NMS
int N::fn() { // { dg-error "namespace" } N::fn not a member of NMS
return 0;
}
struct N::F { // { dg-error "" } N::F not a member of NMS
struct N::F { // { dg-error "namespace" } N::F not a member of NMS
int i;
};
}
NMS::D thing; // { dg-error "error: 'D' in namespace 'NMS' does not name a type" }
NMS::D thing; // { dg-error "'D' in namespace 'NMS' does not name a type" }
void NMS::fn()
{
i = 3;

View File

@ -8,6 +8,6 @@ void bar(foo a) {
delete a; // should be accepted
delete[] a; // should be accepted
char b[1];
delete b; // { dg-error "" } expecting pointer type
delete[] b; // { dg-error "" } expecting pointer type
delete b; // { dg-warning "deleting array" } expecting pointer type
delete[] b; // { dg-warning "deleting array" } expecting pointer type
}

View File

@ -13,22 +13,22 @@ typedef __SIZE_TYPE__ size_t;
void *operator new(size_t)
{
return 0; // { dg-error "" } cannot return NULL
return 0; // { dg-warning "NULL" } cannot return NULL
}
void *operator new[](size_t)
{
return 0; // { dg-error "" } cannot return NULL
return 0; // { dg-warning "NULL" } cannot return NULL
}
struct X
{
void *operator new(size_t)
{
return 0; // { dg-error "" } cannot return NULL
return 0; // { dg-warning "NULL" } cannot return NULL
}
void *operator new[](size_t)
{
return 0; // { dg-error "" } cannot return NULL
return 0; // { dg-warning "NULL" } cannot return NULL
}
};

View File

@ -4,12 +4,12 @@ typedef struct {
} *p;
void f (p) { } // { dg-error "uses anonymous type" }
p q; // { dg-error "uses anonymous type" }
p q; // { dg-warning "uses anonymous type" }
int main()
{
extern p j; // { dg-error "uses anonymous type" }
extern p j; // { dg-warning "uses anonymous type" }
struct A { int j; };
extern A a; // { dg-error "uses local type" }
extern A a; // { dg-warning "uses local type" }
extern void f (A); // { dg-error "uses local type" }
}

View File

@ -35,8 +35,8 @@ typedef int foo::*foomPtr;
int main ()
{
foofPtr fp = &foo::b;
barfPtr bp = (barfPtr)fp; // { dg-warning "" } pointer to member
foofPtr fp2 = (foofPtr)bp; // { dg-warning "" } pointer to member
barfPtr bp = (barfPtr)fp; // { dg-error "pointer to member" }
foofPtr fp2 = (foofPtr)bp; // { dg-error "pointer to member" }
if (fp2 != fp)
return 1;
@ -51,8 +51,8 @@ int main ()
fobj.m = 78;
foomPtr fmp = &foo::m;
barmPtr bmp = (barmPtr)fmp; // { dg-warning "" } pointer to member
foomPtr fmp2 = (foomPtr)bmp; // { dg-warning "" } pointer to member
barmPtr bmp = (barmPtr)fmp; // { dg-error "pointer to member" }
foomPtr fmp2 = (foomPtr)bmp; // { dg-error "pointer to member" }
bar *bptr = &fobj;
if (fmp != fmp2)

View File

@ -13,5 +13,5 @@ public:
template<class T>
void f()
{
Vector<T>::iterator i = 0; // { dg-warning "" } missing typename
Vector<T>::iterator i = 0; // { dg-error "expected" } missing typename
}

View File

@ -10,6 +10,6 @@ template <class T>
struct S : public B<T>
{
struct I {
void f(X x); // { dg-warning "" } implicit typename
void f(X x); // { dg-error "'X' has not been declared" } implicit typename
};
};

View File

@ -17,10 +17,10 @@ struct B : public A<U>
template <class U>
struct C : public B<U>
{
A_Type Func(); // { dg-warning "" } implicit typename
A_Type Func(); // { dg-error "does not name a type" } implicit typename
};
template <class U>
C<U>::A_Type C<U>::Func() { // { dg-warning "" } implicit typename
C<U>::A_Type C<U>::Func() { // { dg-error "expected" } implicit typename
}

View File

@ -17,10 +17,11 @@ struct B : public A<U>
template <class U>
struct C : public B<U>
{
void Func(A_Type); // { dg-warning "" } implicit typename
void Func(A_Type); // { dg-error "has not been declared" } implicit typename
};
template <class U>
void C<U>::Func(A_Type) { // { dg-warning "" } implicit typename
void C<U>::Func(A_Type) { // { dg-error "declared void" "void" } implicit typename
// { dg-error "not declared" "decl" { target *-*-* } 25 }
}

View File

@ -15,6 +15,8 @@ template <class T>
struct D : public A <C <T> > {
void f ()
{
B* new_entries = (B *) 0; // { dg-warning "" } implicit typename
B* new_entries = (B *) 0; // { dg-error "'B' was not declared in this scope" "B" }
// { dg-error "'new_entries' was not declared in this scope" "new_entries" { target *-*-* } 18 }
// { dg-error "expected" "exp" { target *-*-* } 18 }
}
};