diff options
Diffstat (limited to 'build-aux')
-rw-r--r-- | build-aux/c++defs.h | 36 | ||||
-rw-r--r-- | build-aux/warn-on-use.h | 9 |
2 files changed, 36 insertions, 9 deletions
diff --git a/build-aux/c++defs.h b/build-aux/c++defs.h index 7d710898..0c2fad7a 100644 --- a/build-aux/c++defs.h +++ b/build-aux/c++defs.h | |||
@@ -221,10 +221,20 @@ | |||
221 | _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) | 221 | _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) |
222 | # define _GL_CXXALIASWARN_1(func,namespace) \ | 222 | # define _GL_CXXALIASWARN_1(func,namespace) \ |
223 | _GL_CXXALIASWARN_2 (func, namespace) | 223 | _GL_CXXALIASWARN_2 (func, namespace) |
224 | # define _GL_CXXALIASWARN_2(func,namespace) \ | 224 | /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, |
225 | _GL_WARN_ON_USE (func, \ | 225 | we enable the warning only when not optimizing. */ |
226 | "The symbol ::" #func " refers to the system function. " \ | 226 | # if !__OPTIMIZE__ |
227 | "Use " #namespace "::" #func " instead.") | 227 | # define _GL_CXXALIASWARN_2(func,namespace) \ |
228 | _GL_WARN_ON_USE (func, \ | ||
229 | "The symbol ::" #func " refers to the system function. " \ | ||
230 | "Use " #namespace "::" #func " instead.") | ||
231 | # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING | ||
232 | # define _GL_CXXALIASWARN_2(func,namespace) \ | ||
233 | extern __typeof__ (func) func | ||
234 | # else | ||
235 | # define _GL_CXXALIASWARN_2(func,namespace) \ | ||
236 | _GL_EXTERN_C int _gl_cxxalias_dummy | ||
237 | # endif | ||
228 | #else | 238 | #else |
229 | # define _GL_CXXALIASWARN(func) \ | 239 | # define _GL_CXXALIASWARN(func) \ |
230 | _GL_EXTERN_C int _gl_cxxalias_dummy | 240 | _GL_EXTERN_C int _gl_cxxalias_dummy |
@@ -239,10 +249,20 @@ | |||
239 | GNULIB_NAMESPACE) | 249 | GNULIB_NAMESPACE) |
240 | # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ | 250 | # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ |
241 | _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) | 251 | _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) |
242 | # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ | 252 | /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, |
243 | _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ | 253 | we enable the warning only when not optimizing. */ |
244 | "The symbol ::" #func " refers to the system function. " \ | 254 | # if !__OPTIMIZE__ |
245 | "Use " #namespace "::" #func " instead.") | 255 | # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ |
256 | _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ | ||
257 | "The symbol ::" #func " refers to the system function. " \ | ||
258 | "Use " #namespace "::" #func " instead.") | ||
259 | # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING | ||
260 | # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ | ||
261 | extern __typeof__ (func) func | ||
262 | # else | ||
263 | # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ | ||
264 | _GL_EXTERN_C int _gl_cxxalias_dummy | ||
265 | # endif | ||
246 | #else | 266 | #else |
247 | # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ | 267 | # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ |
248 | _GL_EXTERN_C int _gl_cxxalias_dummy | 268 | _GL_EXTERN_C int _gl_cxxalias_dummy |
diff --git a/build-aux/warn-on-use.h b/build-aux/warn-on-use.h index 1cd5062d..171e5991 100644 --- a/build-aux/warn-on-use.h +++ b/build-aux/warn-on-use.h | |||
@@ -67,7 +67,10 @@ | |||
67 | /* A compiler attribute is available in gcc versions 4.3.0 and later. */ | 67 | /* A compiler attribute is available in gcc versions 4.3.0 and later. */ |
68 | # define _GL_WARN_ON_USE(function, message) \ | 68 | # define _GL_WARN_ON_USE(function, message) \ |
69 | extern __typeof__ (function) function __attribute__ ((__warning__ (message))) | 69 | extern __typeof__ (function) function __attribute__ ((__warning__ (message))) |
70 | 70 | # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING | |
71 | /* Verify the existence of the function. */ | ||
72 | # define _GL_WARN_ON_USE(function, message) \ | ||
73 | extern __typeof__ (function) function | ||
71 | # else /* Unsupported. */ | 74 | # else /* Unsupported. */ |
72 | # define _GL_WARN_ON_USE(function, message) \ | 75 | # define _GL_WARN_ON_USE(function, message) \ |
73 | _GL_WARN_EXTERN_C int _gl_warn_on_use | 76 | _GL_WARN_EXTERN_C int _gl_warn_on_use |
@@ -85,6 +88,10 @@ _GL_WARN_EXTERN_C int _gl_warn_on_use | |||
85 | # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ | 88 | # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ |
86 | extern rettype function parameters_and_attributes \ | 89 | extern rettype function parameters_and_attributes \ |
87 | __attribute__ ((__warning__ (msg))) | 90 | __attribute__ ((__warning__ (msg))) |
91 | # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING | ||
92 | /* Verify the existence of the function. */ | ||
93 | # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ | ||
94 | extern rettype function parameters_and_attributes | ||
88 | # else /* Unsupported. */ | 95 | # else /* Unsupported. */ |
89 | # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ | 96 | # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ |
90 | _GL_WARN_EXTERN_C int _gl_warn_on_use | 97 | _GL_WARN_EXTERN_C int _gl_warn_on_use |