asm3.C (two): Only use register keyword for C++14 and earlier.
authorJakub Jelinek <jakub@redhat.com>
Sun, 2 Oct 2016 19:32:45 +0000 (21:32 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sun, 2 Oct 2016 19:32:45 +0000 (21:32 +0200)
* g++.dg/ext/asm3.C (two): Only use register keyword for C++14 and
earlier.
* g++.dg/charset/asm2.c (memmove): Likewise.
* g++.dg/tls/diag-2.C (foo): Expect -Wregister error for C++17.
* g++.dg/tls/diag-4.C (foo): Likewise.
* c-c++-common/vector-subscript-2.c (vf): Change dg-error to
dg-warning, fix up regex.
* g++.old-deja/g++.brendan/warnings4.C: Limit to c++14_down targets.
* g++.old-deja/g++.mike/p700.C: Add -Wno-register.
* g++.old-deja/g++.mike/net31.C: Likewise.
* g++.old-deja/g++.other/regstack.C (foo): Expect -Wregister warning
for C++17.
* g++.old-deja/g++.jason/enum3.C: Add -Wno-register.
* g++.old-deja/g++.eh/ia64-1.C: Likewise.

From-SVN: r240702

12 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/vector-subscript-2.c
gcc/testsuite/g++.dg/charset/asm2.c
gcc/testsuite/g++.dg/ext/asm3.C
gcc/testsuite/g++.dg/tls/diag-2.C
gcc/testsuite/g++.dg/tls/diag-4.C
gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C
gcc/testsuite/g++.old-deja/g++.eh/ia64-1.C
gcc/testsuite/g++.old-deja/g++.jason/enum3.C
gcc/testsuite/g++.old-deja/g++.mike/net31.C
gcc/testsuite/g++.old-deja/g++.mike/p700.C
gcc/testsuite/g++.old-deja/g++.other/regstack.C

index 6e5820347da9a878ac14f92f20db19f939ed62c1..54de56f8f3c9c40c3bc0891c01772cedbd804a7a 100644 (file)
@@ -1,3 +1,20 @@
+2016-10-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * g++.dg/ext/asm3.C (two): Only use register keyword for C++14 and
+       earlier.
+       * g++.dg/charset/asm2.c (memmove): Likewise.
+       * g++.dg/tls/diag-2.C (foo): Expect -Wregister error for C++17.
+       * g++.dg/tls/diag-4.C (foo): Likewise.
+       * c-c++-common/vector-subscript-2.c (vf): Change dg-error to
+       dg-warning, fix up regex.
+       * g++.old-deja/g++.brendan/warnings4.C: Limit to c++14_down targets.
+       * g++.old-deja/g++.mike/p700.C: Add -Wno-register.
+       * g++.old-deja/g++.mike/net31.C: Likewise.
+       * g++.old-deja/g++.other/regstack.C (foo): Expect -Wregister warning
+       for C++17.
+       * g++.old-deja/g++.jason/enum3.C: Add -Wno-register.
+       * g++.old-deja/g++.eh/ia64-1.C: Likewise.
+
 2016-10-01  Richard Biener  <rguenther@suse.de>
 
        PR middle-end/77798
index e7bd251e060494ce0e3df72ec12977dc30bd49d4..bfe01fc2740725d7bdd3f4f9379aadef4e774f2f 100644 (file)
@@ -7,6 +7,6 @@
 
 float vf(int i)
 {
-  register vector float a;     // { dg-error "ISO C++1z does not allow 'register' storage class specifier" "" { target c++1z } }
+  register vector float a;     // { dg-warning "ISO C\\+\\+1z does not allow 'register' storage class specifier" "" { target c++1z } }
   return a[0];
 }
index 7fb1959d260f0fa15989e9617d5b0832160bb797..3907d32fe86d21a36198ddf84fc019750e54f19d 100644 (file)
 void *
 memmove (void *__dest, __const void *__src, size_t __n)
 {
-  register unsigned long int __d0, __d1, __d2;
+#if __cplusplus <= 201402L
+  register
+#endif
+  unsigned long int __d0, __d1, __d2;
   if (__dest < __src)
     __asm__ __volatile__
       ("cld\n\t"
index 090218fe61f9fe9a505ed01a662067a11e968830..0a0f837f0a76c8a8c94b6400f13a0535b046445e 100644 (file)
@@ -7,9 +7,12 @@
 
 int two(int in)
 {
-  register int out;
+#if __cplusplus <= 201402L
+  register
+#endif
+  int out;
   __asm__ ("" : "r" (out) : "r" (in));
   return out;
 }
 
-// { dg-message "error:" "" { target *-*-* } 11 }
+// { dg-message "error:" "" { target *-*-* } 14 }
index b5d02e7fe12bc340f86a5a397f578ef826ef2729..cc46245c1a38e279573a0c3b0f5aac394f1f9b7e 100644 (file)
@@ -12,7 +12,7 @@ void foo()
   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" } */
-}
+}                              /* { dg-error "ISO C\\+\\+1z does not allow 'register' storage class specifier" "" { target c++1z } .-1 } */
 
 __thread void f1 ();           /* { dg-error "invalid for function" } */
 extern __thread void f2 ();    /* { dg-error "invalid for function" } */
index 7d07d9deb2d92341745823c8af011973546eaf47..35440b9114f0457fe957e619fa5d77418d8eb0fe 100644 (file)
@@ -7,4 +7,4 @@ void foo()
 {
   __thread auto int l2;                /* { dg-error "multiple storage classes|data types" } */
   __thread register int l4;    /* { dg-error "multiple storage classes" } */
-}
+}                              /* { dg-error "ISO C\\+\\+1z does not allow 'register' storage class specifier" "" { target c++1z } .-1 } */
index 410ca800ce84c0828680428abba34af5a39b4c17..a0f7dde7a62669f557400f937808b20a3a819a97 100644 (file)
@@ -1,4 +1,4 @@
-// { dg-do assemble  }
+// { dg-do assemble { target c++14_down } }
 // GROUPS passed warnings
 int
 main ()
index f8def11d6da7b6b8372e9b8cd007ef1647f94bf8..7767d342e0a97357f13705765a931856ce822210 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-do run  }
-// { dg-options "-O2" }
+// { dg-options "-O2 -Wno-register" }
 
 #include <exception>
 
index 04e8f287bc7e9615482116584b9bc97ea0985bee..5c65413aea3a2d98ab5f9b5035c45249835f4183 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-do assemble  }
-// { dg-options "-Wall" }
+// { dg-options "-Wall -Wno-register" }
 
 enum tristate { no = -1, maybe, yes };
 
index 8bc159b136ea744c9d80360c4b8b7ea2ee4d9e0b..da54155f88a02f01ba9a3a0f59bf7d7160f7d59b 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do assemble  }
+// { dg-additional-options "-Wno-register" }
 
 class foo_a {
   protected:
index 1fef5c855499d9c2d258ee552c7b6ba745f831ed..531962197df77997ccb440af4e2e5af6c82c9f40 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-do assemble  }
-// { dg-options "-Wno-deprecated" }
+// { dg-options "-Wno-deprecated -Wno-register" }
 // { dg-error "limited range of data type" "16-bit target" { target xstormy16-*-* } 0 }
 // prms-id: 700
 
index 5b8334733325407247fde713d8f1fcc8991fce49..90875cfcf5f4fc67d6430ae09280653f98cc2653 100644 (file)
@@ -3,7 +3,7 @@
 
 inline double foo (double x)
 {
-  register double r;
+  register double r;   // { dg-warning "ISO C\\+\\+1z does not allow 'register' storage class specifier" "" { target c++1z } }
   asm volatile ("fsqrt" : "=t" (r) : "0" (x));
   return r;
 }