Make _GL_WARN_ON_USE usable in C++ and C mode in the same compilation unit.
authorBruno Haible <bruno@clisp.org>
Sat, 20 Mar 2010 23:50:39 +0000 (00:50 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 20 Mar 2010 23:50:39 +0000 (00:50 +0100)
ChangeLog
build-aux/warn-on-use.h

index cc3ef5aa39de38855709c582a4c9d6bc7f63c487..71bd014c717d4e47c7f5d19f8989139d8a2642b1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-20  Bruno Haible  <bruno@clisp.org>
+
+       Make _GL_WARN_ON_USE usable in C++ and C mode in the same compilation.
+       * build-aux/warn-on-use.h (_GL_WARN_EXTERN_C): New macro.
+       (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Likewise.
+       Reported by John W. Eaton <jwe@gnu.org>.
+
 2010-03-20  Bruno Haible  <bruno@clisp.org>
 
        * m4/unlink.m4 (gl_FUNC_UNLINK): Fix last commit.
index d33cfe620b02648c6b2c0a5b5cf6e0f51f84dc50..37b6d2986a367deaefc1fcd77d71d3d255b659ff 100644 (file)
@@ -70,7 +70,7 @@ extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
 
 # else /* Unsupported.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern int _gl_warn_on_use
+_GL_WARN_EXTERN_C int _gl_warn_on_use
 # endif
 #endif
 
@@ -87,6 +87,16 @@ extern rettype function parameters_and_attributes \
      __attribute__ ((__warning__ (msg)))
 # else /* Unsupported.  */
 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
-extern int _gl_warn_on_use
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_EXTERN_C declaration;
+   performs the declaration with C linkage.  */
+#ifndef _GL_WARN_EXTERN_C
+# if defined __cplusplus
+#  define _GL_WARN_EXTERN_C extern "C"
+# else
+#  define _GL_WARN_EXTERN_C extern
 # endif
 #endif