From: jason Date: Wed, 9 Nov 2011 17:53:37 +0000 (+0000) Subject: * [various.C]: Adjust for C++11 mode. X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=103b22193e1d11c8420018a0cc7ea3f48cb59332 * [various.C]: Adjust for C++11 mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181221 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ef4b175d4d7..737a614a313 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,26 @@ 2011-11-09 Jason Merrill + * g++.dg/eh/new1.C: Adjust for C++11 mode. + * g++.dg/init/new11.C: Likewise. + * g++.dg/init/pr29571.C: Likewise. + * g++.dg/lookup/forscope2.C: Likewise. + * g++.dg/parse/linkage1.C: Likewise. + * g++.dg/parse/typedef8.C: Likewise. + * g++.dg/template/error44.C: Likewise. + * g++.dg/tls/diag-2.C: Likewise. + * g++.dg/tls/diag-4.C: Likewise. + * g++.dg/warn/anonymous-namespace-3.C: Likewise. + * g++.old-deja/g++.abi/arraynew.C: Likewise. + * g++.old-deja/g++.abi/cxa_vec.C: Likewise. + * g++.old-deja/g++.brendan/new3.C: Likewise. + * g++.old-deja/g++.eh/new1.C: Likewise. + * g++.old-deja/g++.eh/new2.C: Likewise. + * g++.old-deja/g++.jason/new.C: Likewise. + * g++.old-deja/g++.law/friend1.C: Likewise. + * g++.old-deja/g++.mike/net46.C: Likewise. + * g++.old-deja/g++.mike/p755.C: Likewise. + * g++.old-deja/g++.other/new6.C: Likewise. + * g++.dg/cpp0x/variadic74.C: Adjust diags. * g++.dg/template/crash53.C: Likewise. * g++.dg/template/void9.C: Likewise. diff --git a/gcc/testsuite/g++.dg/eh/new1.C b/gcc/testsuite/g++.dg/eh/new1.C index 0f86fccdc93..3126f192e18 100644 --- a/gcc/testsuite/g++.dg/eh/new1.C +++ b/gcc/testsuite/g++.dg/eh/new1.C @@ -9,7 +9,10 @@ int ret = 1; void *ptr; -void * operator new[] (std::size_t s) throw (std::bad_alloc) +void * operator new[] (std::size_t s) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif { ptr = operator new (s); return ptr; diff --git a/gcc/testsuite/g++.dg/init/new11.C b/gcc/testsuite/g++.dg/init/new11.C index bf06aa4e757..a13f262aa64 100644 --- a/gcc/testsuite/g++.dg/init/new11.C +++ b/gcc/testsuite/g++.dg/init/new11.C @@ -5,7 +5,11 @@ #include bool abort_new; -void *operator new[](size_t bytes) throw (std::bad_alloc) { +void *operator new[](size_t bytes) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif +{ if (abort_new) abort(); return operator new (bytes); diff --git a/gcc/testsuite/g++.dg/init/pr29571.C b/gcc/testsuite/g++.dg/init/pr29571.C index c9bfa28862e..d0dc678cf3e 100644 --- a/gcc/testsuite/g++.dg/init/pr29571.C +++ b/gcc/testsuite/g++.dg/init/pr29571.C @@ -3,6 +3,11 @@ struct A { static const int i = 0/0 + ""; // { dg-warning "division by zero" } - // { dg-error "field initializer is not constant|not a constant-expression" "" { target *-*-* } 5 } + // { dg-error "constant|conversion|initializ" "" { target *-*-* } 5 } static const int j = int(i); }; + +// Currently G++ complains about a non-constant initializer for 'j' in +// C++11 mode, but not C++98. Either way is correct because it depends on +// the erroneous initializer for i, so don't require the error. +// { dg-prune-output ":7:" } diff --git a/gcc/testsuite/g++.dg/lookup/forscope2.C b/gcc/testsuite/g++.dg/lookup/forscope2.C index 1fed957a041..882f102a7f2 100644 --- a/gcc/testsuite/g++.dg/lookup/forscope2.C +++ b/gcc/testsuite/g++.dg/lookup/forscope2.C @@ -7,3 +7,5 @@ struct S { } }; +// It's OK to error or not on line 6. +// { dg-prune-output ":6:" } diff --git a/gcc/testsuite/g++.dg/parse/linkage1.C b/gcc/testsuite/g++.dg/parse/linkage1.C index 4a0d8942e52..5a534251f98 100644 --- a/gcc/testsuite/g++.dg/parse/linkage1.C +++ b/gcc/testsuite/g++.dg/parse/linkage1.C @@ -1,6 +1,6 @@ // PR c++/26068 -extern "C" auto int a; // { dg-error "linkage" } +extern "C" auto int a; // { dg-error "linkage|two or more data types" } extern "C" register int b; // { dg-error "linkage" } extern "C" static void c(); // { dg-error "linkage" } extern "C" extern void d(); // { dg-error "linkage" } diff --git a/gcc/testsuite/g++.dg/parse/typedef8.C b/gcc/testsuite/g++.dg/parse/typedef8.C index 6ff26febbc3..4c1823e87b9 100644 --- a/gcc/testsuite/g++.dg/parse/typedef8.C +++ b/gcc/testsuite/g++.dg/parse/typedef8.C @@ -7,5 +7,5 @@ static typedef int a; // { dg-error "conflicting" } int foo() { - typedef auto int bar; // { dg-error "conflicting" } + typedef auto int bar; // { dg-error "conflicting|two or more data types" } } diff --git a/gcc/testsuite/g++.dg/template/error44.C b/gcc/testsuite/g++.dg/template/error44.C index 4f732cdd701..51053b2d8db 100644 --- a/gcc/testsuite/g++.dg/template/error44.C +++ b/gcc/testsuite/g++.dg/template/error44.C @@ -1,6 +1,6 @@ // PR c++/32056 -template struct A {}; // { dg-error "storage class specified" } +template struct A {}; // { dg-error "storage class specified|two or more" } template struct B {}; // { dg-error "storage class specified" } template struct C {}; // { dg-error "storage class specified" } template struct D {}; // { dg-error "storage class specified" } diff --git a/gcc/testsuite/g++.dg/tls/diag-2.C b/gcc/testsuite/g++.dg/tls/diag-2.C index 484b1884515..b5d02e7fe12 100644 --- a/gcc/testsuite/g++.dg/tls/diag-2.C +++ b/gcc/testsuite/g++.dg/tls/diag-2.C @@ -9,7 +9,7 @@ typedef __thread int g4; /* { dg-error "multiple storage classes" } */ void foo() { __thread int l1; /* { dg-error "implicitly auto and declared '__thread'" } */ - auto __thread int l2; /* { dg-error "multiple storage classes" } */ + auto __thread int l2; /* { dg-error "multiple storage classes|data types" } */ __thread extern int l3; /* { dg-error "'__thread' before 'extern'" } */ register __thread int l4; /* { dg-error "multiple storage classes" } */ } diff --git a/gcc/testsuite/g++.dg/tls/diag-4.C b/gcc/testsuite/g++.dg/tls/diag-4.C index 55e985e9261..7d07d9deb2d 100644 --- a/gcc/testsuite/g++.dg/tls/diag-4.C +++ b/gcc/testsuite/g++.dg/tls/diag-4.C @@ -5,6 +5,6 @@ __thread typedef int g4; /* { dg-error "multiple storage classes" } */ void foo() { - __thread auto int l2; /* { dg-error "multiple storage classes" } */ + __thread auto int l2; /* { dg-error "multiple storage classes|data types" } */ __thread register int l4; /* { dg-error "multiple storage classes" } */ } diff --git a/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C b/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C index 0ba6790f4c9..8b72abdf5d1 100644 --- a/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C +++ b/gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C @@ -11,3 +11,5 @@ struct C // { dg-warning "uses the anonymous namespace" } { std::auto_ptr p; }; + +// { dg-prune-output "auto_ptr. is deprecated" } diff --git a/gcc/testsuite/g++.old-deja/g++.abi/arraynew.C b/gcc/testsuite/g++.old-deja/g++.abi/arraynew.C index ff19c7e3777..7efea818be0 100644 --- a/gcc/testsuite/g++.old-deja/g++.abi/arraynew.C +++ b/gcc/testsuite/g++.old-deja/g++.abi/arraynew.C @@ -8,7 +8,10 @@ void* p; -void* operator new[](size_t s) throw (std::bad_alloc) +void* operator new[](size_t s) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif { // Record the base of the last array allocated. p = malloc (s); diff --git a/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C b/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C index 5370fb8981d..8d098bffca8 100644 --- a/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C +++ b/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C @@ -54,7 +54,10 @@ static abi::__cxa_cdtor_return_type dtor (void *x) // track new and delete static int blocks = 0; -void *operator new[] (std::size_t size) throw (std::bad_alloc) +void *operator new[] (std::size_t size) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif { void *ptr = malloc (size); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/new3.C b/gcc/testsuite/g++.old-deja/g++.brendan/new3.C index 791d00bac96..55c7dbbb37f 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/new3.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/new3.C @@ -12,7 +12,11 @@ int pass = 0; -void *operator new(size_t sz) throw (std::bad_alloc) { +void *operator new(size_t sz) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif +{ void *p; diff --git a/gcc/testsuite/g++.old-deja/g++.eh/new1.C b/gcc/testsuite/g++.old-deja/g++.eh/new1.C index 4c52cf40e4f..e206f5bc853 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/new1.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/new1.C @@ -32,7 +32,10 @@ A::~A() { created = 0; } B::B(A) { } void foo (B*) { throw 1; } -void* operator new (size_t size) throw (std::bad_alloc) +void* operator new (size_t size) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif { ++newed; return (void *) std::malloc (size); diff --git a/gcc/testsuite/g++.old-deja/g++.eh/new2.C b/gcc/testsuite/g++.old-deja/g++.eh/new2.C index 2d69df0e713..d5fd74bcf72 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/new2.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/new2.C @@ -33,7 +33,10 @@ A::~A() { created = 0; } B::B(A) { throw 1; } void foo (B*) { } -void* operator new (size_t size) throw (std::bad_alloc) +void* operator new (size_t size) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif { ++newed; return (void *) std::malloc (size); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/new.C b/gcc/testsuite/g++.old-deja/g++.jason/new.C index 905739b1ba3..5f50d2ad99a 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/new.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/new.C @@ -6,7 +6,11 @@ extern "C" int printf (const char *, ...); extern "C" void *malloc (std::size_t); std::size_t s; -void * operator new (std::size_t siz) throw (std::bad_alloc) { +void * operator new (std::size_t siz) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif +{ if (s == 0) s = siz; else diff --git a/gcc/testsuite/g++.old-deja/g++.law/friend1.C b/gcc/testsuite/g++.old-deja/g++.law/friend1.C index 9cc1d3564d3..aed9bd53405 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/friend1.C +++ b/gcc/testsuite/g++.old-deja/g++.law/friend1.C @@ -9,7 +9,11 @@ #include #include struct Foo { +#if __cplusplus <= 199711L friend void* operator new(size_t) throw (std::bad_alloc); +#else + friend void* operator new(size_t); +#endif friend void operator delete(void*) throw (); Foo(); ~Foo(); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net46.C b/gcc/testsuite/g++.old-deja/g++.mike/net46.C index 174022852a3..a2362325452 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/net46.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/net46.C @@ -8,7 +8,11 @@ int fail = 1; int in_main = 0; -void *operator new(size_t size) throw (std::bad_alloc) { +void *operator new(size_t size) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif +{ if (!in_main) return malloc (size); --fail; return (void*) 0; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p755.C b/gcc/testsuite/g++.old-deja/g++.mike/p755.C index 28eeefad43d..ee6198dfb6c 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p755.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p755.C @@ -6,7 +6,11 @@ extern "C" void _exit(int); -void* operator new(std::size_t sz) throw (std::bad_alloc) { +void* operator new(std::size_t sz) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif +{ void* p = 0; _exit(0); return p; diff --git a/gcc/testsuite/g++.old-deja/g++.other/new6.C b/gcc/testsuite/g++.old-deja/g++.other/new6.C index 3afb2b7e489..7013337b21b 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/new6.C +++ b/gcc/testsuite/g++.old-deja/g++.other/new6.C @@ -8,7 +8,10 @@ extern "C" void *malloc (size_t); int special; int space = 0xdeadbeef; -void *operator new (size_t size) throw (bad_alloc) +void *operator new (size_t size) +#if __cplusplus <= 199711L + throw (std::bad_alloc) +#endif { if (special) return &space;