bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: csharpexec.c causes intmax_t from config.h to be redefined.


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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]