~ubuntu-branches/ubuntu/jaunty/luatex/jaunty

« back to all changes in this revision

Viewing changes to src/libs/zziplib/zzip/__hints.h

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Preining
  • Date: 2007-09-24 12:56:11 UTC
  • Revision ID: james.westby@ubuntu.com-20070924125611-a8ge689azbptxvla
Tags: upstream-0.11.2
ImportĀ upstreamĀ versionĀ 0.11.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __ZZIP_INTERNAL_HINTS_H
 
2
#define __ZZIP_INTERNAL_HINTS_H
 
3
#include <zzip/conf.h>
 
4
 
 
5
#ifndef ZZIP_GNUC_ATLEAST
 
6
# if defined __GNUC__ && defined __GNUC_MINOR__
 
7
# define ZZIP_GNUC_ATLEAST(_M_,_N_) \
 
8
        ((__GNUC__ << 10) + __GNUC_MINOR__ >= ((_M_) << 10) + (_N_))
 
9
# elif defined __GNUC__
 
10
# define ZZIP_GNUC_ATLEAST(_M_,_N_) \
 
11
        ((__GNUC__ << 10) >= ((_M_) << 10))
 
12
# else
 
13
# define ZZIP_GNUC_ATLEAST(_M_, _N_) 0
 
14
# endif
 
15
#endif
 
16
 
 
17
#ifndef ZZIP_GNUC_EXTENSION
 
18
# if ZZIP_GNUC_ATLEAST(2,8)
 
19
# define ZZIP_GNUC_EXTENSION __extension__
 
20
# else
 
21
# define ZZIP_GNUC_EXTENSION 
 
22
# endif
 
23
#endif
 
24
 
 
25
/* func has no side effects, return value depends only on params and globals */
 
26
#ifndef ZZIP_GNUC_PURE
 
27
# if ZZIP_GNUC_ATLEAST(2,8)
 
28
# define ZZIP_GNUC_PURE __attribute__((__pure__))
 
29
# else
 
30
# define ZZIP_GNUC_PURE
 
31
# endif
 
32
#endif
 
33
 
 
34
/* func has no side effects, return value depends only on params */
 
35
#ifndef ZZIP_GNUC_CONST
 
36
# if ZZIP_GNUC_ATLEAST(2,4)
 
37
# define ZZIP_GNUC_CONST __attribute__((__const__))
 
38
# else
 
39
# define ZZIP_GNUC_CONST
 
40
# endif
 
41
#endif
 
42
 
 
43
/* typename / variable / function possibly unused */
 
44
#ifndef ZZIP_GNUC_UNUSED
 
45
# if ZZIP_GNUC_ATLEAST(2,4)
 
46
# define ZZIP_GNUC_UNUSED __attribute__((__unused__))
 
47
# else
 
48
# define ZZIP_GNUC_UNUSED
 
49
# endif
 
50
#endif
 
51
 
 
52
/* obvious. btw, a noreturn-func should return void */
 
53
#ifndef ZZIP_GNUC_NORETURN
 
54
# if ZZIP_GNUC_ATLEAST(2,5)
 
55
# define ZZIP_GNUC_NORETURN __attribute__((__noreturn__))
 
56
# else
 
57
# define ZZIP_GNUC_NORETURN
 
58
# endif
 
59
#endif
 
60
 
 
61
/* omit function from profiling with -finstrument-functions */
 
62
#ifndef ZZIP_GNUC_NO_INSTRUMENT
 
63
# if ZZIP_GNUC_ATLEAST(2,4)
 
64
# define ZZIP_GNUC_NO_INSTRUMENT __attribute__((__no_instrument_function__))
 
65
# else
 
66
# define ZZIP_GNUC_NO_INSTRUMENT
 
67
# endif
 
68
#endif
 
69
 
 
70
/* all pointer args must not be null, and allow optimiztons based on the fact*/
 
71
#ifndef ZZIP_GNUC_NONNULL
 
72
# if ZZIP_GNUC_ATLEAST(3,1)
 
73
# define ZZIP_GNUC_NONNULL __attribute__((nonnull))
 
74
# else
 
75
# define ZZIP_GNUC_NONNULL
 
76
# endif
 
77
#endif
 
78
 
 
79
/* the function can not throw - the libc function are usually nothrow */
 
80
#ifndef ZZIP_GNUC_NOTHROW
 
81
# if ZZIP_GNUC_ATLEAST(3,2)
 
82
# define ZZIP_GNUC_NOTHROW __attribute__((nothrow))
 
83
# else
 
84
# define ZZIP_GNUC_NOTHROW
 
85
# endif
 
86
#endif
 
87
 
 
88
/* typename / function / variable is obsolete but still listed in headers */
 
89
#ifndef ZZIP_GNUC_DEPRECATED
 
90
# if ZZIP_GNUC_ATLEAST(3,1)
 
91
# define ZZIP_GNUC_DEPRECATED __attribute__((deprecated))
 
92
# else
 
93
# define ZZIP_GNUC_DEPRECATED
 
94
# endif
 
95
#endif
 
96
 
 
97
/* resolve references to this function during pre-linking the libary */
 
98
#ifndef ZZIP_GNUC_LIB_PROTECTED
 
99
# if ZZIP_GNUC_ATLEAST(3,1)
 
100
# define ZZIP_GNUC_LIB_PROTECTED __attribute__((visiblity("protected")))
 
101
# else
 
102
# define ZZIP_GNUC_LIB_PROTECTED
 
103
# endif
 
104
#endif
 
105
 
 
106
/* func shall only be usable within the same lib (so, no entry in lib symtab)*/
 
107
#ifndef ZZIP_GNUC_LIB_PRIVATE
 
108
# if ZZIP_GNUC_ATLEAST(3,1)
 
109
# define ZZIP_GNUC_LIB_PRIVATE __attribute__((visiblity("hidden")))
 
110
# else
 
111
# define ZZIP_GNUC_LIB_PRIVATE
 
112
# endif
 
113
#endif
 
114
 
 
115
/* ... and not even passed as a function pointer reference to outside the lib*/
 
116
#ifndef ZZIP_GNUC_LIB_INTERNAL
 
117
# if ZZIP_GNUC_ATLEAST(3,1)
 
118
# define ZZIP_GNUC_LIB_INTERNAL __attribute__((visiblity("internal")))
 
119
# else
 
120
# define ZZIP_GNUC_LIB_INTERNAL
 
121
# endif
 
122
#endif
 
123
 
 
124
 
 
125
#ifndef ZZIP_GNUC_FORMAT
 
126
# if ZZIP_GNUC_ATLEAST(2,4)
 
127
# define ZZIP_GNUC_FORMAT(_X_) __attribute__((__format_arg__(_X_)))
 
128
# else
 
129
# define ZZIP_GNUC_FORMAT(_X_)
 
130
# endif
 
131
#endif
 
132
 
 
133
#ifndef ZZIP_GNUC_SCANF
 
134
# if ZZIP_GNUC_ATLEAST(2,4)
 
135
# define ZZIP_GNUC_SCANF(_S_,_X_) __attribute__((__scanf__(_S_,_X_)))
 
136
# else
 
137
# define ZZIP_GNUC_SCANF(_S_,_X_)
 
138
# endif
 
139
#endif
 
140
 
 
141
#ifndef ZZIP_GNUC_PRINTF
 
142
# if ZZIP_GNUC_ATLEAST(2,4)
 
143
# define ZZIP_GNUC_PRINTF(_S_,_X_) __attribute__((__printf__(_S_,_X_)))
 
144
# else
 
145
# define ZZIP_GNUC_PRINTF(_S_,_X_)
 
146
# endif
 
147
#endif
 
148
 
 
149
#ifndef ZZIP_FUNCTION
 
150
# if ZZIP_GNUC_ATLEAST(2,6)
 
151
# define ZZIP_FUNC             __FUNCTION__
 
152
# define ZZIP_FUNCTION         __FUNCTION__
 
153
# elif  defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
 
154
# define ZZIP_FUNC             __func__
 
155
# define ZZIP_FUNCTION         ""
 
156
# else   
 
157
# define ZZIP_FUNC             0
 
158
# define ZZIP_FUNCTION         ""
 
159
# endif  
 
160
#endif
 
161
 
 
162
#ifndef ZZIP_STRING
 
163
#define ZZIP_STRING(_X_)   ZZIP_STRING_(_X_)
 
164
#define ZZIP_STRING_(_Y_)  #_Y_
 
165
#endif
 
166
 
 
167
#ifndef ZZIP_DIM
 
168
#define ZZIP_DIM(_A_)  (sizeof(_A_) / sizeof ((_A_)[0]))
 
169
#endif
 
170
 
 
171
#if !(defined ZZIP_FOR1 && defined ZZIP_END1)
 
172
# if defined sun || defined __sun__
 
173
# define ZZIP_FOR1  if (1)
 
174
# define ZZIP_END1  else (void)0
 
175
# else
 
176
# define ZZIP_FOR1  do
 
177
# define ZZIP_END1  while (0)
 
178
# endif
 
179
#endif
 
180
 
 
181
#ifndef ZZIP_BRANCH_OVER
 
182
# if ZZIP_GNUC_ATLEAST(2,96)
 
183
# define ZZIP_BRANCH_OVER(_X_) __builtin_expect((_X_),0)
 
184
# else
 
185
# define ZZIP_BRANCH_OVER(_X_) (_X_)
 
186
# endif
 
187
#endif
 
188
 
 
189
#endif