annotate libavutil/attributes.h @ 10:4d1f82230449

preprocessed source from newer mercurial ver.
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Tue, 13 Aug 2013 13:12:57 +0200
parents
children
rev   line source
nengel@2 1 /*
nengel@2 2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
nengel@2 3 *
nengel@2 4 * This file is part of FFmpeg.
nengel@2 5 *
nengel@2 6 * FFmpeg is free software; you can redistribute it and/or
nengel@2 7 * modify it under the terms of the GNU Lesser General Public
nengel@2 8 * License as published by the Free Software Foundation; either
nengel@2 9 * version 2.1 of the License, or (at your option) any later version.
nengel@2 10 *
nengel@2 11 * FFmpeg is distributed in the hope that it will be useful,
nengel@2 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nengel@2 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
nengel@2 14 * Lesser General Public License for more details.
nengel@2 15 *
nengel@2 16 * You should have received a copy of the GNU Lesser General Public
nengel@2 17 * License along with FFmpeg; if not, write to the Free Software
nengel@2 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
nengel@2 19 */
nengel@2 20
nengel@2 21 /**
nengel@2 22 * @file
nengel@2 23 * Macro definitions for various function/variable attributes
nengel@2 24 */
nengel@2 25
nengel@2 26 #ifndef AVUTIL_ATTRIBUTES_H
nengel@2 27 #define AVUTIL_ATTRIBUTES_H
nengel@2 28
nengel@2 29 #ifdef __GNUC__
nengel@2 30 # define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y)
nengel@2 31 #else
nengel@2 32 # define AV_GCC_VERSION_AT_LEAST(x,y) 0
nengel@2 33 #endif
nengel@2 34
nengel@2 35 #ifndef av_always_inline
nengel@2 36 #if AV_GCC_VERSION_AT_LEAST(3,1)
nengel@2 37 # define av_always_inline __attribute__((always_inline)) inline
nengel@2 38 #else
nengel@2 39 # define av_always_inline inline
nengel@2 40 #endif
nengel@2 41 #endif
nengel@2 42
nengel@2 43 #ifndef av_noinline
nengel@2 44 #if AV_GCC_VERSION_AT_LEAST(3,1)
nengel@2 45 # define av_noinline __attribute__((noinline))
nengel@2 46 #else
nengel@2 47 # define av_noinline
nengel@2 48 #endif
nengel@2 49 #endif
nengel@2 50
nengel@2 51 #ifndef av_pure
nengel@2 52 #if AV_GCC_VERSION_AT_LEAST(3,1)
nengel@2 53 # define av_pure __attribute__((pure))
nengel@2 54 #else
nengel@2 55 # define av_pure
nengel@2 56 #endif
nengel@2 57 #endif
nengel@2 58
nengel@2 59 #ifndef av_const
nengel@2 60 #if AV_GCC_VERSION_AT_LEAST(2,6)
nengel@2 61 # define av_const __attribute__((const))
nengel@2 62 #else
nengel@2 63 # define av_const
nengel@2 64 #endif
nengel@2 65 #endif
nengel@2 66
nengel@2 67 #ifndef av_cold
nengel@2 68 #if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,3)
nengel@2 69 # define av_cold __attribute__((cold))
nengel@2 70 #else
nengel@2 71 # define av_cold
nengel@2 72 #endif
nengel@2 73 #endif
nengel@2 74
nengel@2 75 #ifndef av_flatten
nengel@2 76 #if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,1)
nengel@2 77 # define av_flatten __attribute__((flatten))
nengel@2 78 #else
nengel@2 79 # define av_flatten
nengel@2 80 #endif
nengel@2 81 #endif
nengel@2 82
nengel@2 83 #ifndef attribute_deprecated
nengel@2 84 #if AV_GCC_VERSION_AT_LEAST(3,1)
nengel@2 85 # define attribute_deprecated __attribute__((deprecated))
nengel@2 86 #else
nengel@2 87 # define attribute_deprecated
nengel@2 88 #endif
nengel@2 89 #endif
nengel@2 90
nengel@2 91 #ifndef av_unused
nengel@2 92 #if defined(__GNUC__)
nengel@2 93 # define av_unused __attribute__((unused))
nengel@2 94 #else
nengel@2 95 # define av_unused
nengel@2 96 #endif
nengel@2 97 #endif
nengel@2 98
nengel@2 99 #ifndef av_uninit
nengel@2 100 #if defined(__GNUC__) && !defined(__ICC)
nengel@2 101 # define av_uninit(x) x=x
nengel@2 102 #else
nengel@2 103 # define av_uninit(x) x
nengel@2 104 #endif
nengel@2 105 #endif
nengel@2 106
nengel@2 107 #ifdef __GNUC__
nengel@2 108 # define av_builtin_constant_p __builtin_constant_p
nengel@2 109 #else
nengel@2 110 # define av_builtin_constant_p(x) 0
nengel@2 111 #endif
nengel@2 112
nengel@2 113 #endif /* AVUTIL_ATTRIBUTES_H */