diff options
author | Max Kellermann <max@duempel.org> | 2013-10-15 09:21:13 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-10-15 09:21:59 +0200 |
commit | be2951b45fe071ae7e4957414c7b23e72fbac07a (patch) | |
tree | 7e103cfa2f6adca7df4492cebbe24b5222e30d0f /src/gcc.h | |
parent | 1dd1a705b58f1645cda679b88a2629d21adcbd07 (diff) | |
download | mpd-be2951b45fe071ae7e4957414c7b23e72fbac07a.tar.gz mpd-be2951b45fe071ae7e4957414c7b23e72fbac07a.tar.xz mpd-be2951b45fe071ae7e4957414c7b23e72fbac07a.zip |
gcc.h: rename to Compiler.h
Diffstat (limited to 'src/gcc.h')
-rw-r--r-- | src/gcc.h | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/src/gcc.h b/src/gcc.h deleted file mode 100644 index 2946eae0d..000000000 --- a/src/gcc.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (C) 2003-2013 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef MPD_GCC_H -#define MPD_GCC_H - -#define GCC_CHECK_VERSION(major, minor) \ - (defined(__GNUC__) && \ - (__GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))) - -#ifdef __GNUC__ -#define GCC_VERSION (__GNUC__ * 10000 \ - + __GNUC_MINOR__ * 100 \ - + __GNUC_PATCHLEVEL__) -#else -#define GCC_VERSION 0 -#endif - -#ifdef __clang__ -# define CLANG_VERSION (__clang_major__ * 10000 \ - + __clang_minor__ * 100 \ - + __clang_patchlevel__) -# if __clang_major__ < 3 -# error Sorry, your clang version is too old. You need at least version 3.1. -# endif -#elif defined(__GNUC__) -# if !GCC_CHECK_VERSION(4,6) -# error Sorry, your gcc version is too old. You need at least version 4.6. -# endif -#else -# warning Untested compiler. Use at your own risk! -#endif - -#if GCC_CHECK_VERSION(4,0) - -/* GCC 4.x */ - -#define gcc_const __attribute__((const)) -#define gcc_deprecated __attribute__((deprecated)) -#define gcc_may_alias __attribute__((may_alias)) -#define gcc_malloc __attribute__((malloc)) -#define gcc_noreturn __attribute__((noreturn)) -#define gcc_packed __attribute__((packed)) -#define gcc_printf(a,b) __attribute__((format(printf, a, b))) -#define gcc_pure __attribute__((pure)) -#define gcc_sentinel __attribute__((sentinel)) -#define gcc_unused __attribute__((unused)) -#define gcc_warn_unused_result __attribute__((warn_unused_result)) - -#define gcc_nonnull(...) __attribute__((nonnull(__VA_ARGS__))) -#define gcc_nonnull_all __attribute__((nonnull)) - -#define gcc_likely(x) __builtin_expect (!!(x), 1) -#define gcc_unlikely(x) __builtin_expect (!!(x), 0) - -#define gcc_aligned(n) __attribute__((aligned(n))) - -#define gcc_visibility_hidden __attribute__((visibility("hidden"))) -#define gcc_visibility_default __attribute__((visibility("default"))) - -#define gcc_always_inline __attribute__((always_inline)) - -#else - -/* generic C compiler */ - -#define gcc_const -#define gcc_deprecated -#define gcc_may_alias -#define gcc_malloc -#define gcc_noreturn -#define gcc_packed -#define gcc_printf(a,b) -#define gcc_pure -#define gcc_sentinel -#define gcc_unused -#define gcc_warn_unused_result - -#define gcc_nonnull(...) -#define gcc_nonnull_all - -#define gcc_likely(x) (x) -#define gcc_unlikely(x) (x) - -#define gcc_aligned(n) - -#define gcc_visibility_hidden -#define gcc_visibility_default - -#define gcc_always_inline inline - -#endif - -#if GCC_CHECK_VERSION(4,3) - -#define gcc_hot __attribute__((hot)) -#define gcc_cold __attribute__((cold)) - -#else /* ! GCC_UNUSED >= 40300 */ - -#define gcc_hot -#define gcc_cold - -#endif /* ! GCC_UNUSED >= 40300 */ - -#if GCC_CHECK_VERSION(4,6) && !defined(__clang__) -#define gcc_flatten __attribute__((flatten)) -#else -#define gcc_flatten -#endif - -#ifndef __cplusplus -/* plain C99 has "restrict" */ -#define gcc_restrict restrict -#elif GCC_CHECK_VERSION(4,0) -/* "__restrict__" is a GCC extension for C++ */ -#define gcc_restrict __restrict__ -#else -/* disable it on other compilers */ -#define gcc_restrict -#endif - -/* C++11 features */ - -#if defined(__cplusplus) - -/* support for C++11 "override" was added in gcc 4.7 */ -#if !defined(__clang__) && !GCC_CHECK_VERSION(4,7) -#define override -#define final -#endif - -#if defined(__clang__) || GCC_CHECK_VERSION(4,8) -#define gcc_alignas(T, fallback) alignas(T) -#else -#define gcc_alignas(T, fallback) gcc_aligned(fallback) -#endif - -#endif - -#ifndef __has_feature - // define dummy macro for non-clang compilers - #define __has_feature(x) 0 -#endif - -#if __has_feature(attribute_unused_on_fields) -#define gcc_unused_field gcc_unused -#else -#define gcc_unused_field -#endif - -#if defined(__GNUC__) || defined(__clang__) -#define gcc_unreachable() __builtin_unreachable() -#else -#define gcc_unreachable() -#endif - -#endif |