diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-04-19 18:31:11 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-04-19 18:31:11 +0200 |
commit | 541035a63b8adc3900ca0d335382c2808228f191 (patch) | |
tree | cfd5b2937487c9f156d88138ac4df0d1d4be721d | |
parent | 48d811eb1cbcf8176c769a8f7f227892b9949619 (diff) | |
download | gcc-541035a63b8adc3900ca0d335382c2808228f191.zip gcc-541035a63b8adc3900ca0d335382c2808228f191.tar.gz gcc-541035a63b8adc3900ca0d335382c2808228f191.tar.bz2 |
re PR c++/80459 (c-c++-common/opaque-vector.c FAILs)
PR c++/80459
* c-c++-common/opaque-vector.c (SIZEOF_MAXINT): Define.
(f): Don't test long double vectors if __SIZEOF_LONG_DOUBLE__
is not power of 2, or is more than 16 or more than SIZEOF_MAXINT.
From-SVN: r247001
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/opaque-vector.c | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 113506b..4c68324 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2017-04-19 Jakub Jelinek <jakub@redhat.com> + PR c++/80459 + * c-c++-common/opaque-vector.c (SIZEOF_MAXINT): Define. + (f): Don't test long double vectors if __SIZEOF_LONG_DOUBLE__ + is not power of 2, or is more than 16 or more than SIZEOF_MAXINT. + PR debug/80436 * g++.dg/opt/pr80436.C: New test. diff --git a/gcc/testsuite/c-c++-common/opaque-vector.c b/gcc/testsuite/c-c++-common/opaque-vector.c index bac3497..ae4a9a8 100644 --- a/gcc/testsuite/c-c++-common/opaque-vector.c +++ b/gcc/testsuite/c-c++-common/opaque-vector.c @@ -5,6 +5,11 @@ #define T_TEST(TYPE) #endif #define T(TYPE) B_TEST(TYPE) T_TEST(TYPE) +#ifdef __SIZEOF_INT128__ +#define SIZEOF_MAXINT __SIZEOF_INT128__ +#else +#define SIZEOF_MAXINT __SIZEOF_LONG_LONG__ +#endif void f () { @@ -15,8 +20,13 @@ void f () T_TEST(float) T_TEST(double) - /* Avoid trouble with non-power-of-two sizes. */ -#if !defined(__i386__) && !defined(__x86_64__) && !defined(__m68k__) && !defined(__ia64__) && !defined(__hppa__) + /* Avoid trouble with non-power-of-two sizes. + Also avoid trouble with long double larger than integral types. */ +#if !defined(__i386__) && !defined(__x86_64__) && !defined(__m68k__) \ + && !defined(__ia64__) && !defined(__hppa__) \ + && (__SIZEOF_LONG_DOUBLE__ & (__SIZEOF_LONG_DOUBLE__ - 1)) == 0 \ + && __SIZEOF_LONG_DOUBLE__ <= 16 \ + && __SIZEOF_LONG_DOUBLE__ <= SIZEOF_MAXINT T_TEST(long double) #endif } |