integer-pack2.C: Require int32 effective target.

* g++.dg/ext/integer-pack2.C: Require int32 effective target.
	Don't include limits.h.
	(w): Conditionalize on long long wider than int.  Use
	1LL << (__SIZEOF_INT__ * __CHAR_BIT__) instead of
	-9223372036854775808.
	(x): Use __INT_MAX__ instead of INT_MAX.

From-SVN: r248427
This commit is contained in:
Jakub Jelinek 2017-05-24 21:11:01 +02:00 committed by Jakub Jelinek
parent a79b947460
commit 216bfadc5d
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2017-05-24 Jakub Jelinek <jakub@redhat.com>
* g++.dg/ext/integer-pack2.C: Require int32 effective target.
Don't include limits.h.
(w): Conditionalize on long long wider than int. Use
1LL << (__SIZEOF_INT__ * __CHAR_BIT__) instead of
-9223372036854775808.
(x): Use __INT_MAX__ instead of INT_MAX.
2017-05-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/66094

View File

@ -1,12 +1,12 @@
// { dg-do compile { target c++11 } }
// { dg-do compile { target { c++11 && int32 } } }
// { dg-options -w }
#include <limits.h>
template<typename T, T...> struct integer_sequence { };
template<typename T, T num>
using make_integer_sequence = integer_sequence<T, __integer_pack(num)...>; // { dg-error "argument" }
make_integer_sequence<int, -9223372036854775808> w;
make_integer_sequence<int, INT_MAX> x; // { dg-message "required" }
#if __SIZEOF_LONG_LONG__ > __SIZEOF_INT__
make_integer_sequence<int, 1LL << (__SIZEOF_INT__ * __CHAR_BIT__)> w;
#endif
make_integer_sequence<int, __INT_MAX__> x; // { dg-message "required" }
make_integer_sequence<int, -2147483650> y; // { dg-message "required" }