|
Lines 230-240
Link Here
|
| 230 |
(e.g., A and B) have the same type as MIN and MAX. Instead, they assume |
230 |
(e.g., A and B) have the same type as MIN and MAX. Instead, they assume |
| 231 |
that the result (e.g., A + B) has that type. */ |
231 |
that the result (e.g., A + B) has that type. */ |
| 232 |
#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL |
232 |
#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL |
| 233 |
# define _GL_ADD_OVERFLOW(a, b, min, max) |
233 |
# define _GL_ADD_OVERFLOW(a, b, min, max) \ |
| 234 |
__builtin_add_overflow (a, b, (__typeof__ ((a) + (b)) *) 0) |
234 |
__builtin_add_overflow (a, b, (__typeof__ ((a) + (b)) *) 0) |
| 235 |
# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) |
235 |
# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ |
| 236 |
__builtin_sub_overflow (a, b, (__typeof__ ((a) - (b)) *) 0) |
236 |
__builtin_sub_overflow (a, b, (__typeof__ ((a) - (b)) *) 0) |
| 237 |
# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) |
237 |
# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ |
| 238 |
__builtin_mul_overflow (a, b, (__typeof__ ((a) * (b)) *) 0) |
238 |
__builtin_mul_overflow (a, b, (__typeof__ ((a) * (b)) *) 0) |
| 239 |
#else |
239 |
#else |
| 240 |
# define _GL_ADD_OVERFLOW(a, b, min, max) \ |
240 |
# define _GL_ADD_OVERFLOW(a, b, min, max) \ |