I'm compiling code that was written for GCC, in Visual C++ 2012. I'm getting warnings thrown about enum value truncation with the following enum (due to the value being outside the range of an int):
enum tile_flags { TILE_FLAG_INNER_FLAME= 0x10000000ULL, TILE_FLAG_CONSTRICTED= 0x20000000ULL, TILE_FLAG_MIMIC_INEPT 0x2000000000ULL TILE_FLAG_MIMIC 0x4000000000ULL TILE_FLAG_MIMIC_RAVEN 0x6000000000ULL TILE_FLAG_MIMIC_MASK 0x6000000000ULL } When compiling for x86, it would appear MSVC simply truncates the enum values to fit in 32bits. However, no truncation occurs in GCC. What is happening on GCC? And how can I make this work for MSVC?