On 2021-11-04 06:40, Corinna Vinschen via Cygwin wrote:
On Nov  4 00:23, Pavel M via Cygwin wrote:
Observation: C standard library: standard headers may reserve non-standard
identifiers which don't begin with an underscore.

Invocations:
$ echo -e "#include <limits.h>\n#define NL_NMAX" | gcc -xc - -std=c11
-pedantic -Wall -Wextra -E > /dev/null
<stdin>:2: warning: "NL_NMAX" redefined
In file included from /usr/lib/gcc/x86_64-pc-cygwin/11/include/limits.h:203,
                  from
/usr/lib/gcc/x86_64-pc-cygwin/11/include/syslimits.h:7,
                  from /usr/lib/gcc/x86_64-pc-cygwin/11/include/limits.h:34,
                  from <stdin>:1:
/usr/include/limits.h:507: note: this is the location of the previous
definition
   507 | #define NL_NMAX                              INT_MAX

$ echo -e "#include <limits.h>\n#define PAGESIZE" | gcc -xc - -std=c11
-pedantic -Wall -Wextra -E > /dev/null
<stdin>:2: warning: "PAGESIZE" redefined
In file included from /usr/lib/gcc/x86_64-pc-cygwin/11/include/limits.h:203,
                  from
/usr/lib/gcc/x86_64-pc-cygwin/11/include/syslimits.h:7,
                  from /usr/lib/gcc/x86_64-pc-cygwin/11/include/limits.h:34,
                  from <stdin>:1:
/usr/include/limits.h:220: note: this is the location of the previous
definition
   220 | #define PAGESIZE __PAGESIZE

# and so on...

That's ok for limits.h, see
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html

Some of the values also use feature test macros.

Most Unix implementations follow POSIX over C and those compilers default to POSIX and/or GNU over strict C standards. As they use feature test macros, most/all of these should be suppressed if your compiler supports -stdXX or equivalent and issue standard required diagnostics with -pedantic{,-errors} or equivalent. Library interfaces may also provide means to prefer certain standard calling sequences over de facto alternatives. See your compiler and library newlib/libc documentation under Standards or equivalent e.g

        $ info gcc Standards
        $ info libc Standards

--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to