OSDN Git Service

* [various.C]: Adjust for C++11 mode.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Nov 2011 17:53:37 +0000 (17:53 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Nov 2011 17:53:37 +0000 (17:53 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181221 138bc75d-0d04-0410-961f-82ee72b054a4

21 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/eh/new1.C
gcc/testsuite/g++.dg/init/new11.C
gcc/testsuite/g++.dg/init/pr29571.C
gcc/testsuite/g++.dg/lookup/forscope2.C
gcc/testsuite/g++.dg/parse/linkage1.C
gcc/testsuite/g++.dg/parse/typedef8.C
gcc/testsuite/g++.dg/template/error44.C
gcc/testsuite/g++.dg/tls/diag-2.C
gcc/testsuite/g++.dg/tls/diag-4.C
gcc/testsuite/g++.dg/warn/anonymous-namespace-3.C
gcc/testsuite/g++.old-deja/g++.abi/arraynew.C
gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C
gcc/testsuite/g++.old-deja/g++.brendan/new3.C
gcc/testsuite/g++.old-deja/g++.eh/new1.C
gcc/testsuite/g++.old-deja/g++.eh/new2.C
gcc/testsuite/g++.old-deja/g++.jason/new.C
gcc/testsuite/g++.old-deja/g++.law/friend1.C
gcc/testsuite/g++.old-deja/g++.mike/net46.C
gcc/testsuite/g++.old-deja/g++.mike/p755.C
gcc/testsuite/g++.old-deja/g++.other/new6.C

index ef4b175..737a614 100644 (file)
@@ -1,5 +1,26 @@
 2011-11-09  Jason Merrill  <jason@redhat.com>
 
+       * 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.
index 0f86fcc..3126f19 100644 (file)
@@ -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;
index bf06aa4..a13f262 100644 (file)
@@ -5,7 +5,11 @@
 #include <new>
 
 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);
index c9bfa28..d0dc678 100644 (file)
@@ -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:" }
index 1fed957..882f102 100644 (file)
@@ -7,3 +7,5 @@ struct S {
     }
 };
 
+// It's OK to error or not on line 6.
+// { dg-prune-output ":6:" }
index 4a0d894..5a53425 100644 (file)
@@ -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" }
index 6ff26fe..4c1823e 100644 (file)
@@ -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" }
 }
index 4f732cd..51053b2 100644 (file)
@@ -1,6 +1,6 @@
 // PR c++/32056
 
-template <auto int T> struct A {}; // { dg-error "storage class specified" }
+template <auto int T> struct A {}; // { dg-error "storage class specified|two or more" }
 template <extern int T> struct B {}; // { dg-error "storage class specified" }
 template <static int T> struct C {}; // { dg-error "storage class specified" }
 template <register int T> struct D {}; // { dg-error "storage class specified" }
index 484b188..b5d02e7 100644 (file)
@@ -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" } */
 }
index 55e985e..7d07d9d 100644 (file)
@@ -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" } */
 }
index 0ba6790..8b72abd 100644 (file)
@@ -11,3 +11,5 @@ struct C                 // { dg-warning "uses the anonymous namespace" }
 {
   std::auto_ptr<A> p;
 };
+
+// { dg-prune-output "auto_ptr. is deprecated" }
index ff19c7e..7efea81 100644 (file)
@@ -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);
index 5370fb8..8d098bf 100644 (file)
@@ -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);
   
index 791d00b..55c7dbb 100644 (file)
 
 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;
 
index 4c52cf4..e206f5b 100644 (file)
@@ -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);
index 2d69df0..d5fd74b 100644 (file)
@@ -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);
index 905739b..5f50d2a 100644 (file)
@@ -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
index 9cc1d35..aed9bd5 100644 (file)
@@ -9,7 +9,11 @@
 #include <stddef.h>
 #include <new>
 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();
index 1740228..a236232 100644 (file)
@@ -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;
index 28eeefa..ee6198d 100644 (file)
@@ -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;
index 3afb2b7..7013337 100644 (file)
@@ -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;