@@ -37,13 +37,17 @@ STATIC_ASSERT(__builtin_types_compatible_p(typeof(enum unsigned_enum), unsigned
37
37
38
38
// The enum gets bigger as required, but note that the constant is now unsigned.
39
39
enum large_enum1 { LARGE_CONSTANT1 = 0x100000000 };
40
- STATIC_ASSERT (__builtin_types_compatible_p (typeof (LARGE_CONSTANT1 ), unsigned long ));
41
- STATIC_ASSERT (__builtin_types_compatible_p (typeof (enum large_enum1 ), unsigned long ));
40
+ STATIC_ASSERT (__builtin_types_compatible_p (typeof (LARGE_CONSTANT1 ), unsigned long ) ||
41
+ __builtin_types_compatible_p (typeof (LARGE_CONSTANT1 ), unsigned long long ));
42
+ STATIC_ASSERT (__builtin_types_compatible_p (typeof (enum large_enum1 ), unsigned long ) ||
43
+ __builtin_types_compatible_p (typeof (enum large_enum1 ), unsigned long long ));
42
44
43
45
// Also works when signed
44
46
enum large_enum2 { NEG = -1 , LARGE_CONSTANT2 = 0x100000000 };
45
- STATIC_ASSERT (__builtin_types_compatible_p (typeof (LARGE_CONSTANT2 ), signed long ));
46
- STATIC_ASSERT (__builtin_types_compatible_p (typeof (enum large_enum2 ), signed long ));
47
+ STATIC_ASSERT (__builtin_types_compatible_p (typeof (LARGE_CONSTANT2 ), signed long ) ||
48
+ __builtin_types_compatible_p (typeof (LARGE_CONSTANT2 ), signed long long ));
49
+ STATIC_ASSERT (__builtin_types_compatible_p (typeof (enum large_enum2 ), signed long ) ||
50
+ __builtin_types_compatible_p (typeof (enum large_enum2 ), signed long long ));
47
51
48
52
// 'Packed' is interesting.
49
53
enum __attribute__ ((packed )) packed_enum1 { POS_PACKED = 1 };
0 commit comments