OLD | NEW |
1 /* ANSI and traditional C compatability macros | 1 /* ANSI and traditional C compatability macros |
2 Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, | 2 Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
3 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 | 3 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 |
4 Free Software Foundation, Inc. | 4 Free Software Foundation, Inc. |
5 This file is part of the GNU C Library. | 5 This file is part of the GNU C Library. |
6 | 6 |
7 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation; either version 2 of the License, or | 9 the Free Software Foundation; either version 2 of the License, or |
10 (at your option) any later version. | 10 (at your option) any later version. |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 # endif | 272 # endif |
273 # else | 273 # else |
274 # if GCC_VERSION >= 4005 | 274 # if GCC_VERSION >= 4005 |
275 # define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ; | 275 # define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ; |
276 # else | 276 # else |
277 # define ATTRIBUTE_UNUSED_LABEL | 277 # define ATTRIBUTE_UNUSED_LABEL |
278 # endif | 278 # endif |
279 # endif | 279 # endif |
280 #endif | 280 #endif |
281 | 281 |
| 282 /* Similarly to ARG_UNUSED below. Prior to GCC 3.4, the C++ frontend |
| 283 couldn't parse attributes placed after the identifier name, and now |
| 284 the entire compiler is built with C++. */ |
282 #ifndef ATTRIBUTE_UNUSED | 285 #ifndef ATTRIBUTE_UNUSED |
283 #define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) | 286 #if GCC_VERSION >= 3004 |
| 287 # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) |
| 288 #else |
| 289 #define ATTRIBUTE_UNUSED |
| 290 #endif |
284 #endif /* ATTRIBUTE_UNUSED */ | 291 #endif /* ATTRIBUTE_UNUSED */ |
285 | 292 |
286 /* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the | 293 /* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the |
287 identifier name. */ | 294 identifier name. */ |
288 #if ! defined(__cplusplus) || (GCC_VERSION >= 3004) | 295 #if ! defined(__cplusplus) || (GCC_VERSION >= 3004) |
289 # define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED | 296 # define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED |
290 #else /* !__cplusplus || GNUC >= 3.4 */ | 297 #else /* !__cplusplus || GNUC >= 3.4 */ |
291 # define ARG_UNUSED(NAME) NAME | 298 # define ARG_UNUSED(NAME) NAME |
292 #endif /* !__cplusplus || GNUC >= 3.4 */ | 299 #endif /* !__cplusplus || GNUC >= 3.4 */ |
293 | 300 |
294 #ifndef ATTRIBUTE_NORETURN | 301 #ifndef ATTRIBUTE_NORETURN |
295 #define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) | 302 #define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) |
296 #endif /* ATTRIBUTE_NORETURN */ | 303 #endif /* ATTRIBUTE_NORETURN */ |
297 | 304 |
298 /* Attribute `nonnull' was valid as of gcc 3.3. */ | 305 /* Attribute `nonnull' was valid as of gcc 3.3. */ |
299 #ifndef ATTRIBUTE_NONNULL | 306 #ifndef ATTRIBUTE_NONNULL |
300 # if (GCC_VERSION >= 3003) | 307 # if (GCC_VERSION >= 3003) |
301 # define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m))) | 308 # define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m))) |
302 # else | 309 # else |
303 # define ATTRIBUTE_NONNULL(m) | 310 # define ATTRIBUTE_NONNULL(m) |
304 # endif /* GNUC >= 3.3 */ | 311 # endif /* GNUC >= 3.3 */ |
305 #endif /* ATTRIBUTE_NONNULL */ | 312 #endif /* ATTRIBUTE_NONNULL */ |
306 | 313 |
| 314 /* Attribute `returns_nonnull' was valid as of gcc 4.9. */ |
| 315 #ifndef ATTRIBUTE_RETURNS_NONNULL |
| 316 # if (GCC_VERSION >= 4009) |
| 317 # define ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) |
| 318 # else |
| 319 # define ATTRIBUTE_RETURNS_NONNULL |
| 320 # endif /* GNUC >= 4.9 */ |
| 321 #endif /* ATTRIBUTE_RETURNS_NONNULL */ |
| 322 |
307 /* Attribute `pure' was valid as of gcc 3.0. */ | 323 /* Attribute `pure' was valid as of gcc 3.0. */ |
308 #ifndef ATTRIBUTE_PURE | 324 #ifndef ATTRIBUTE_PURE |
309 # if (GCC_VERSION >= 3000) | 325 # if (GCC_VERSION >= 3000) |
310 # define ATTRIBUTE_PURE __attribute__ ((__pure__)) | 326 # define ATTRIBUTE_PURE __attribute__ ((__pure__)) |
311 # else | 327 # else |
312 # define ATTRIBUTE_PURE | 328 # define ATTRIBUTE_PURE |
313 # endif /* GNUC >= 3.0 */ | 329 # endif /* GNUC >= 3.0 */ |
314 #endif /* ATTRIBUTE_PURE */ | 330 #endif /* ATTRIBUTE_PURE */ |
315 | 331 |
316 /* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL. | 332 /* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL. |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 #define ENUM_BITFIELD(TYPE) __extension__ enum TYPE | 441 #define ENUM_BITFIELD(TYPE) __extension__ enum TYPE |
426 #else | 442 #else |
427 #define ENUM_BITFIELD(TYPE) unsigned int | 443 #define ENUM_BITFIELD(TYPE) unsigned int |
428 #endif | 444 #endif |
429 | 445 |
430 #ifdef __cplusplus | 446 #ifdef __cplusplus |
431 } | 447 } |
432 #endif | 448 #endif |
433 | 449 |
434 #endif /* ansidecl.h */ | 450 #endif /* ansidecl.h */ |
OLD | NEW |