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
This commit is contained in:
parent
48d811eb1c
commit
541035a63b
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue