Unsigned long is 32bit on several platforms (e.g., Windows), yielding
1UL << 32 to be zero.
Note that BITFIELD64_BIT result is often assigned to variables of type
GLbitfield, instead of GLbitfield64. That's probably wrong and should be
addressed in a later change.
typedef GLuint64 GLbitfield64;
/** Set a single bit */
-#ifdef __cplusplus
-#define BITFIELD64_BIT(b) (1UL << (b))
-#else
-#define BITFIELD64_BIT(b) (1ULL << (b))
-#endif
+#define BITFIELD64_BIT(b) ((GLbitfield64)1 << (b))
/**