|
|
1.1 root 1: /* compiler.h - macros for various compiler features */
2: /*
3: * GRUB -- GRand Unified Bootloader
4: * Copyright (C) 2002,2003,2005,2006,2007,2008,2009,2010,2014 Free Software Foundation, Inc.
5: *
6: * GRUB is free software: you can redistribute it and/or modify
7: * it under the terms of the GNU General Public License as published by
8: * the Free Software Foundation, either version 3 of the License, or
9: * (at your option) any later version.
10: *
11: * GRUB is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: * GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
18: */
19:
20: #ifndef GRUB_COMPILER_HEADER
21: #define GRUB_COMPILER_HEADER 1
22:
23: /* GCC version checking borrowed from glibc. */
24: #if defined(__GNUC__) && defined(__GNUC_MINOR__)
25: # define GNUC_PREREQ(maj,min) \
26: ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
27: #else
28: # define GNUC_PREREQ(maj,min) 0
29: #endif
30:
31: /* Does this compiler support compile-time error attributes? */
32: #if GNUC_PREREQ(4,3)
33: # define ATTRIBUTE_ERROR(msg) \
34: __attribute__ ((__error__ (msg)))
35: #else
36: # define ATTRIBUTE_ERROR(msg) __attribute__ ((noreturn))
37: #endif
38:
39: #if GNUC_PREREQ(4,4)
40: # define GNU_PRINTF gnu_printf
41: #else
42: # define GNU_PRINTF printf
43: #endif
44:
45: #if GNUC_PREREQ(3,4)
46: # define WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
47: #else
48: # define WARN_UNUSED_RESULT
49: #endif
50:
51: #endif /* ! GRUB_COMPILER_HEADER */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.