Commit 541035a6 by Jakub Jelinek Committed by Jakub Jelinek

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
parent 48d811eb
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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment