Re: Re: [PATCH v2] newlib: fix build with <gcc-5 versions
Eric Bresie <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <2a049f53-52c8-4858-8075-e65a760d9875@iPad> |
Interesting was not familiar with either of these https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html Eric Bresie [email protected] (mailto:[email protected]) > On March 15, 2022 at 6:54:00 PM CDT, Mike Frysinger <[email protected] (mailto:[email protected])> wrote: > On 15 Mar 2022 12:41, Richard Earnshaw wrote: > > On 15/03/2022 03:25, Mike Frysinger wrote: > > > __builtin_mul_overflow showed up with gcc-5, so stub it out for older > > > versions. > > > --- > > > newlib/libc/include/sys/cdefs.h | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/newlib/libc/include/sys/cdefs.h b/newlib/libc/include/sys/cdefs.h > > > index da729092185c..e51f7f4b873a 100644 > > > --- a/newlib/libc/include/sys/cdefs.h > > > +++ b/newlib/libc/include/sys/cdefs.h > > > @@ -416,6 +416,10 @@ > > > #define __unreachable() ((void)0) > > > #endif > > > > > > +#if !__GNUC_PREREQ__(5, 0) > > > +#define __builtin_mul_overflow(a, b, size) ({ *(size) = (a) * (b); 0; }) > > > > Wouldn't > > (*(size) = (a) * (b), 0) > > > > be more portable (avoiding the GNU statement expression extension)? > > sure, that works too, thanks > -mike > signature.asc849 bytes (#attachment-1)