On Wed, Oct 19, 2022 at 02:57:59PM +0000, Joseph Myers wrote:
> I think the type checked for e5a should be conditional on __LONG_MAX__ >
> __INT_MAX__; everything else there should be OK regardless.
This patch does that.
2022-10-19 Jakub Jelinek <jakub@redhat.com>
PR c/107311
* gcc.dg/c2x-enum-1.c (enum e5): Expect e5a type inside of
enum to be int rather than long if long isn't wider than int.
e5b, e5c, e5d = ((typeof (e5b)) -1) < 0,
e5e = (unsigned long) -1,
e5f, e5g = ((typeof (e5e)) -1) > 0,
- TYPE_CHECK (e5a, long), TYPE_CHECK (e5e, unsigned long) };
+#if __LONG_MAX__ > __INT_MAX__
+ TYPE_CHECK (e5a, long),
+#else
+ TYPE_CHECK (e5a, int),
+#endif
+ TYPE_CHECK (e5e, unsigned long) };
extern enum e5 e5v;
extern typeof (e5a) e5v;
extern typeof (e5b) e5v;