From Patrick Schluter:
- enum constants bigger than uint. Full in undefined behaviour territory according to the standard, gcc defines the behaviour and defines enums as long/unsigned long/long long/unsigned long long if necessary. ImportC rejects for instance
Error: enum member `lang.LANID_TYPE.LANID_GL` enum member value `4294967296LU` does not fit in an `int`
Comment #1 by bugzilla — 2023-05-11T07:27:32Z
This works:
#include <stdio.h>
enum E { A = 4294967296LU };
int main()
{
printf("%llu\n", A);
return 0;
}
in the current master.