On 6/19/2017 10:09 AM, Bruno Haible wrote:
John Malmberg wrote:
On VMS, the config.h file is generated to "#define intmax_t long long".
The csharpexec.c module includes config.h and then includes some header
files that redefine intmax_t.
After it does that, it #includes "classpath.c" which then includes
config.h again.
This causes the original definition to be restored, and the VMS C
compiler issues a diagnostic about it.
#define intmax_t long long
.................^
%CC-W-MACROREDEF, The redefinition of the macro "intmax_t" conflicts
with a current definition because the replacement lists differ. The
redefinition is now in effect.
This is only a warning, and you can ignore it. Better compilers produce
a diagnostic only for redefinitions with a _different_ expansion.
The redefinition does have a different expansion:
I can reproduce the diagnostic by feeding the same code sequence to gcc.
malmberg@solar:$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
malmberg@solar:$ cat test.c
#define intmax_t long long
typedef long long int gl_intmax_t;
#undef intmax_t
#define intmax_t gl_intmax_t
#define intmax_t long long
malmberg@solar:$ gcc -c test.c
test.c:5:0: warning: "intmax_t" redefined [enabled by default]
#define intmax_t long long
^
test.c:4:0: note: this is the location of the previous definition
#define intmax_t gl_intmax_t
^
Regards,
-John