gen-uni-tables.c produces types like this:
struct
{
int header[1];
int level1[2];
short level2[2 << 7];
/*unsigned*/ int level3[16 << 4];
}Why is the unsigned commented out? Some of the constants are so large that they are treated as unsigned ints. This kind of narrowing initialization is no longer valid C++.
