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