/* { dg-do run } */ | |
/* { dg-options "-std=gnu89" } */ | |
/* In standard C, enumeration constants always have type int. If they | |
are not representables are int, they're ill-formed. In GNU C, we | |
give such ill-formed constructs well-defined meaning. Make sure it | |
works. */ | |
#include <stdlib.h> | |
enum foo | |
{ | |
foo1 = 0, | |
foo2 = 0xffffffffffffffffULL, | |
foo3 = 0xf0fffffffffffffeULL | |
}; | |
int main () | |
{ | |
if (sizeof (enum foo) != sizeof (unsigned long long)) | |
abort (); | |
exit (0); | |
} |