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/ >