newlib header breaks restricted pointers in C++
Joel Sherrill
joel@rtems.org
Fri Jul 28 14:42:49 GMT 2023
On Fri, Jul 28, 2023 at 9:15 AM Sebastian Huber <
sebastian.huber@embedded-brains.de> wrote:
>
>
> On 27.07.23 11:00, Corinna Vinschen wrote:
> > Let's compare with the GLibc version:
> >
> > /* __restrict is known in EGCS 1.2 and above, and in clang.
> > It works also in C++ mode (outside of arrays), but only when
> spelled
> > as '__restrict', not 'restrict'. */
> > #if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3)
> > # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
> > # define __restrict restrict
> > # else
> > # define __restrict /* Ignore */
> > # endif
> > #endif
> >
> > So the expression is the same, just the version check makes more sense.
> >
> > Shall we match our version expression to the GLibc expression?
>
> Yes, this makes sense. However, do we care about GCC < 2.92 and clang < 3?
>
I recently tried to build a variety of old gcc and clang versions for some
experiments
and failed to go back that far building Linux compilers. I am sure there
are old toolchains
out there with gcc that old but they should stick with an older newlib.
GCC 2.95.3 was released on March 16, 2001. The base 2.95 release was in
July 1999.
This should be well before GCC supported C99.
I'd be prone to add #error if the version doesn't meet a floor version. But
that's just my
opinion.
--joel
>
> --
> embedded brains GmbH
> Herr Sebastian HUBER
> Dornierstr. 4
> 82178 Puchheim
> Germany
> email: sebastian.huber@embedded-brains.de
> phone: +49-89-18 94 741 - 16
> fax: +49-89-18 94 741 - 08
>
> Registergericht: Amtsgericht München
> Registernummer: HRB 157899
> Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
> Unsere Datenschutzerklärung finden Sie hier:
> https://embedded-brains.de/datenschutzerklaerung/
>
More information about the Newlib
mailing list