|
From: | John Malmberg |
Subject: | Re: csharpexec.c causes intmax_t from config.h to be redefined. |
Date: | Tue, 27 Jun 2017 08:12:09 -0500 |
User-agent: | Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
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. address@hidden:$ gcc --version gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 address@hidden:$ 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 address@hidden:$ 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
[Prev in Thread] | Current Thread | [Next in Thread] |