mirror of git://gcc.gnu.org/git/gcc.git
asm3.C (two): Only use register keyword for C++14 and earlier.
* 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
This commit is contained in:
parent
333b2f3146
commit
2c8e3a1d99
|
|
@ -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>
|
2016-10-01 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR middle-end/77798
|
PR middle-end/77798
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,6 @@
|
||||||
|
|
||||||
float vf(int i)
|
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];
|
return a[0];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,10 @@
|
||||||
void *
|
void *
|
||||||
memmove (void *__dest, __const void *__src, size_t __n)
|
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)
|
if (__dest < __src)
|
||||||
__asm__ __volatile__
|
__asm__ __volatile__
|
||||||
("cld\n\t"
|
("cld\n\t"
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,12 @@
|
||||||
|
|
||||||
int two(int in)
|
int two(int in)
|
||||||
{
|
{
|
||||||
register int out;
|
#if __cplusplus <= 201402L
|
||||||
|
register
|
||||||
|
#endif
|
||||||
|
int out;
|
||||||
__asm__ ("" : "r" (out) : "r" (in));
|
__asm__ ("" : "r" (out) : "r" (in));
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
// { dg-message "error:" "" { target *-*-* } 11 }
|
// { dg-message "error:" "" { target *-*-* } 14 }
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ void foo()
|
||||||
auto __thread int l2; /* { dg-error "multiple storage classes|data types" } */
|
auto __thread int l2; /* { dg-error "multiple storage classes|data types" } */
|
||||||
__thread extern int l3; /* { dg-error "'__thread' before 'extern'" } */
|
__thread extern int l3; /* { dg-error "'__thread' before 'extern'" } */
|
||||||
register __thread int l4; /* { dg-error "multiple storage classes" } */
|
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" } */
|
__thread void f1 (); /* { dg-error "invalid for function" } */
|
||||||
extern __thread void f2 (); /* { dg-error "invalid for function" } */
|
extern __thread void f2 (); /* { dg-error "invalid for function" } */
|
||||||
|
|
|
||||||
|
|
@ -7,4 +7,4 @@ void foo()
|
||||||
{
|
{
|
||||||
__thread auto int l2; /* { dg-error "multiple storage classes|data types" } */
|
__thread auto int l2; /* { dg-error "multiple storage classes|data types" } */
|
||||||
__thread register int l4; /* { dg-error "multiple storage classes" } */
|
__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 } */
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// { dg-do assemble }
|
// { dg-do assemble { target c++14_down } }
|
||||||
// GROUPS passed warnings
|
// GROUPS passed warnings
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// { dg-do run }
|
// { dg-do run }
|
||||||
// { dg-options "-O2" }
|
// { dg-options "-O2 -Wno-register" }
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// { dg-do assemble }
|
// { dg-do assemble }
|
||||||
// { dg-options "-Wall" }
|
// { dg-options "-Wall -Wno-register" }
|
||||||
|
|
||||||
enum tristate { no = -1, maybe, yes };
|
enum tristate { no = -1, maybe, yes };
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
// { dg-do assemble }
|
// { dg-do assemble }
|
||||||
|
// { dg-additional-options "-Wno-register" }
|
||||||
|
|
||||||
class foo_a {
|
class foo_a {
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// { dg-do assemble }
|
// { 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 }
|
// { dg-error "limited range of data type" "16-bit target" { target xstormy16-*-* } 0 }
|
||||||
// prms-id: 700
|
// prms-id: 700
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
inline double foo (double x)
|
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));
|
asm volatile ("fsqrt" : "=t" (r) : "0" (x));
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue