3 Due to a check in SDCCval.c using double instead of long long (thus losing precision, 0x8000000000000000 was given the type of signed long long instead of unsigned long long.
10 #define IS_ULL(x) _Generic((x), unsigned long long: 1, default: 0)
11 #define IS_UL(x) _Generic((x), unsigned long: 1, default: 0)
15 #if (LLONG_MAX <= 0x7fffffffffffffffLL)
16 ASSERT( IS_ULL(0x8000000000000000ll
)); // Bug triggered here.
17 ASSERT(!IS_ULL(0x7fffffffffffffffll
));
19 ASSERT(!IS_ULL(0x0000000080000000ll
));
21 #if (LONG_MAX <= 0x7fffffffL)
22 ASSERT( IS_UL(0x80000000l
));
23 ASSERT(!IS_UL(0x7fffffffl
));
25 ASSERT(!IS_UL(0x00008000l
));