for (int i=0; i < size; i++) {
#define PROMOTE(Set, CType, Get) leftUnionArray[i].Set(static_cast<CType>(rightUnionArray[i].Get()))
+#define PROMOTE_TO_BOOL(Get) leftUnionArray[i].setBConst(rightUnionArray[i].Get() != 0)
#define TO_ALL(Get) \
switch (promoteTo) { \
case EbtUint16: PROMOTE(setU16Const, unsigned short, Get); break; \
case EbtUint: PROMOTE(setUConst, unsigned int, Get); break; \
case EbtUint64: PROMOTE(setU64Const, unsigned long long, Get); break; \
- case EbtBool: PROMOTE(setBConst, bool, Get); break; \
+ case EbtBool: PROMOTE_TO_BOOL(Get); break; \
default: return node; \
}