mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 13:21:12 +08:00
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:
parent
1edd1a8317
commit
d0488d176b
gcc/testsuite
ChangeLog
g++.dg
charset
conversion
cpp0x
expr
ext
parse
template
warn
g++.old-deja
g++.bob
g++.brendan
g++.bugs
g++.ext
g++.jason
g++.law
g++.martin
g++.mike
g++.niklas
g++.other
g++.pt
@ -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>
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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" "" }
|
||||
|
@ -1 +1 @@
|
||||
template<typename... Args> class tuple; // { dg-warning "variadic templates" }
|
||||
template<typename... Args> class tuple; // { dg-error "variadic templates" }
|
||||
|
@ -1,5 +1,5 @@
|
||||
void (*p)();
|
||||
|
||||
void f() {
|
||||
(void *)p; // { dg-error "" }
|
||||
(void *)p; // { dg-warning "forbids cast" }
|
||||
}
|
||||
|
@ -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 }
|
||||
|
@ -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" "" } */
|
||||
};
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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" } */
|
||||
|
@ -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" }
|
||||
|
@ -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" }
|
||||
|
@ -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" }
|
||||
};
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -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" }
|
||||
};
|
||||
|
@ -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" }
|
||||
|
@ -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];
|
||||
}
|
||||
|
@ -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 () {
|
||||
|
@ -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 () {}
|
||||
|
@ -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" }
|
||||
};
|
||||
|
||||
|
@ -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" }
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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" }
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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 }
|
||||
|
@ -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();
|
||||
};
|
||||
|
@ -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; }
|
||||
|
@ -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; }
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -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" }
|
||||
}
|
||||
|
@ -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" }
|
||||
;
|
||||
|
||||
}
|
||||
|
@ -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 }
|
||||
|
@ -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" }
|
||||
|
@ -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" }
|
||||
|
||||
|
@ -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 }
|
||||
|
@ -10,4 +10,4 @@ static union {
|
||||
struct SS {
|
||||
int ss;
|
||||
};
|
||||
};// { dg-error "" } .*
|
||||
};// { dg-warning "no members" }
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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)
|
||||
|
@ -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 }
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
};
|
||||
|
@ -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" }
|
||||
}
|
||||
|
@ -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';
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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; }
|
||||
|
@ -2,4 +2,4 @@
|
||||
// prms-id: 9732
|
||||
|
||||
struct foo {};
|
||||
foo& x() { return foo(); } // { dg-warning "" }
|
||||
foo& x() { return foo(); } // { dg-error "invalid init" }
|
||||
|
@ -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" }
|
||||
}
|
||||
};
|
||||
|
@ -9,6 +9,6 @@ int *pp=&i;
|
||||
void foo() { }
|
||||
int main()
|
||||
{
|
||||
charptr(*pp)++; // { dg-warning "" }
|
||||
charptr(*pp)++; // { dg-error "lvalue" }
|
||||
return 0;
|
||||
}
|
||||
|
@ -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" }
|
||||
}
|
||||
|
@ -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); }
|
||||
|
@ -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;
|
||||
|
@ -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" }
|
||||
|
||||
}
|
||||
|
@ -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" }
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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" }
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -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 }
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user