[PATCH v2] newlib: fix build with <gcc-5 versions
R. Diez
rdiezmail-2005@yahoo.de
Wed Mar 16 07:12:04 GMT 2022
> __builtin_mul_overflow showed up with gcc-5, so stub it out for older
> versions.
> [...]
> +#if !__GNUC_PREREQ__(5, 0)
> +#define __builtin_mul_overflow(a, b, size) ({ *(size) = (a) * (b); 0; })
I do not understand why Newlib needs to "stub it out" like this.
According to the GCC documentation, this kind of built-in routines allow the caller to check whether the operations overflowes. But the code above performs no overflow checking at all.
Therefore, compiling your code with GCC < 5 will silently break your application. After all, the only reason to use __builtin_mul_overflow() is that you need to check for overflow, is it?
Regards,
rdiez
More information about the Newlib
mailing list