PulseAudio
4.0-266-gf81e3
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
gccmacro.h
Go to the documentation of this file.
1
#ifndef foopulsegccmacrohfoo
2
#define foopulsegccmacrohfoo
3
4
/***
5
This file is part of PulseAudio.
6
7
Copyright 2004-2006 Lennart Poettering
8
9
PulseAudio is free software; you can redistribute it and/or modify
10
it under the terms of the GNU Lesser General Public License as published
11
by the Free Software Foundation; either version 2.1 of the License,
12
or (at your option) any later version.
13
14
PulseAudio is distributed in the hope that it will be useful, but
15
WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
General Public License for more details.
18
19
You should have received a copy of the GNU Lesser General Public License
20
along with PulseAudio; if not, write to the Free Software
21
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22
USA.
23
***/
24
28
#if defined(__GNUC__)
29
#ifdef __MINGW32__
30
/* libintl overrides printf with a #define. As this breaks this attribute,
31
* it has a workaround. However the workaround isn't enabled for MINGW
32
* builds (only cygwin) */
33
#define PA_GCC_PRINTF_ATTR(a,b) __attribute__ ((format (__printf__, a, b)))
34
#else
35
#define PA_GCC_PRINTF_ATTR(a,b) __attribute__ ((format (printf, a, b)))
36
#endif
37
#else
38
39
#define PA_GCC_PRINTF_ATTR(a,b)
40
#endif
41
42
#if defined(__GNUC__) && (__GNUC__ >= 4)
43
#define PA_GCC_SENTINEL __attribute__ ((sentinel))
44
#else
45
46
#define PA_GCC_SENTINEL
47
#endif
48
49
#ifdef __GNUC__
50
#define PA_GCC_NORETURN __attribute__((noreturn))
51
#else
52
53
#define PA_GCC_NORETURN
54
#endif
55
56
#ifdef __GNUC__
57
#define PA_GCC_UNUSED __attribute__ ((unused))
58
#else
59
60
#define PA_GCC_UNUSED
61
#endif
62
63
#ifdef __GNUC__
64
#define PA_GCC_DESTRUCTOR __attribute__ ((destructor))
65
#else
66
67
#define PA_GCC_DESTRUCTOR
68
#endif
69
70
#ifndef PA_GCC_PURE
71
#ifdef __GNUC__
72
#define PA_GCC_PURE __attribute__ ((pure))
73
#else
74
75
#define PA_GCC_PURE
76
#endif
77
#endif
78
79
#ifndef PA_GCC_CONST
80
#ifdef __GNUC__
81
#define PA_GCC_CONST __attribute__ ((const))
82
#else
83
84
#define PA_GCC_CONST
85
#endif
86
#endif
87
88
#ifndef PA_GCC_DEPRECATED
89
#ifdef __GNUC__
90
#define PA_GCC_DEPRECATED __attribute__ ((deprecated))
91
#else
92
93
#define PA_GCC_DEPRECATED
94
#endif
95
#endif
96
97
#ifndef PA_GCC_PACKED
98
#ifdef __GNUC__
99
#define PA_GCC_PACKED __attribute__ ((packed))
100
#else
101
102
#define PA_GCC_PACKED
103
#endif
104
#endif
105
106
#ifndef PA_GCC_ALLOC_SIZE
107
#if defined(__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3)
108
#define PA_GCC_ALLOC_SIZE(x) __attribute__ ((__alloc_size__(x)))
109
#define PA_GCC_ALLOC_SIZE2(x,y) __attribute__ ((__alloc_size__(x,y)))
110
#else
111
112
#define PA_GCC_ALLOC_SIZE(x)
113
114
#define PA_GCC_ALLOC_SIZE2(x,y)
115
#endif
116
#endif
117
118
#ifndef PA_GCC_MALLOC
119
#ifdef __GNUC__
120
#define PA_GCC_MALLOC __attribute__ ((malloc))
121
#else
122
123
#define PA_GCC_MALLOC
124
#endif
125
#endif
126
127
#ifndef PA_GCC_WEAKREF
128
#if defined(__GNUC__) && defined(__ELF__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ > 1)) || (__GNUC__ > 4))
129
130
#define PA_GCC_WEAKREF(x) __attribute__((weakref(#x)))
131
#endif
132
#endif
133
134
#endif
src
pulse
gccmacro.h
Generated by
1.8.5