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: Bruno Haible
Subject: Re: csharpexec.c causes intmax_t from config.h to be redefined.
Date: Mon, 19 Jun 2017 17:09:23 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-79-generic; KDE/5.18.0; x86_64; ; )

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.

But anyway, it's easy to make sure config.h is only included once, in
this case:


2017-06-19  Bruno Haible  <address@hidden>

        classpath: Avoid including config.h twice, as it produces warnings.
        Reported by John E. Malmberg <address@hidden>.
        * lib/classpath.h: Conditionalize the include of config.h.

diff --git a/lib/classpath.c b/lib/classpath.c
index e56f23f..c7868f6 100644
--- a/lib/classpath.c
+++ b/lib/classpath.c
@@ -15,7 +15,11 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <config.h>
+/* If CLASSPATHVAR is defined, this file is being #included, and config.h is
+   therefore already included.  */
+#if !defined CLASSPATHVAR
+# include <config.h>
+#endif
 
 /* Specification.  */
 #include "classpath.h"




reply via email to

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