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 cc3ef5a..71bd014 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 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.
        Reported by Jim Meyering.
 
index d33cfe6..37b6d29 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