]> andersk Git - splint.git/blob - src/Headers/qual.h
2b77e6b4aeb6082e54c6becaefec73b3a3875672
[splint.git] / src / Headers / qual.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** qual.h
8 **
9 ** representation of type qualifiers
10 */
11
12 # ifndef QUALH
13 # define QUALH
14
15 /*
16 ** just use tokens to represent type qualifiers 
17 ** (tokens are defined in cgrammar.y) 
18 */
19
20 typedef enum { 
21   QU_UNKNOWN = 0,
22   QU_CONST, QU_VOLATILE, QU_RESTRICT,
23   QU_INLINE, QU_EXTERN, QU_STATIC, 
24   QU_AUTO, QU_REGISTER, 
25   QU_SHORT, QU_LONG, QU_SIGNED, QU_UNSIGNED, 
26   QU_OUT, QU_IN,
27   QU_ONLY, QU_IMPONLY,
28   QU_TEMP, QU_SHARED, QU_KEEP, QU_KEPT, QU_PARTIAL, QU_SPECIAL,
29   QU_NULL, QU_RELNULL, QU_ISNULL,
30   QU_NULLTERMINATED,
31   QU_SETBUFFERSIZE,
32   QU_EXPOSED, QU_RETURNED, QU_OBSERVER, QU_UNIQUE,
33   QU_OWNED, QU_DEPENDENT, QU_RELDEF,
34   QU_YIELD, 
35   QU_NEVEREXIT, QU_EXITS, QU_MAYEXIT, QU_TRUEEXIT, QU_FALSEEXIT,
36   QU_UNUSED, QU_EXTERNAL, QU_SEF,
37   QU_NOTNULL,
38   QU_ABSTRACT, QU_NUMABSTRACT, QU_CONCRETE, 
39   QU_MUTABLE, QU_IMMUTABLE,
40   QU_REFCOUNTED, QU_REFS, QU_NEWREF, QU_KILLREF, QU_TEMPREF,
41   QU_TRUENULL, QU_FALSENULL, 
42   QU_CHECKED, QU_UNCHECKED, QU_CHECKEDSTRICT, QU_CHECKMOD,
43   QU_UNDEF, QU_KILLED,
44   QU_PRINTFLIKE, QU_SCANFLIKE, QU_MESSAGELIKE,
45   QU_USERANNOT,
46   QU_LAST
47 } quenum;
48
49 immut_typedef struct {
50   quenum kind;
51   /*@observer@*/ /*@null@*/ annotationInfo info; /* for QU_USERANNOT only */
52 } *qual;
53
54 extern /*@only@*/ cstring qual_dump (qual) ;
55 extern qual qual_undump (char **p_s) /*@modifies *p_s@*/ ;
56
57
58 /*
59 ** qualifiers correspond to tokens in the grammar:
60 **    
61 **    standard C qualifiers:    
62 **        QCONST QVOLATILE QINLINE QEXTERN QSTATIC QAUTO QREGISTER
63 **        QSHORT QLONG QSIGNED QUNSIGNED
64 **    augmented LCL qualifiers: 
65 **        QOUT QONLY QTEMP QSHARED QUNIQUE QYIELD
66 **        QEXITS QMAYEXIT QNULLTERMINATED
67 */
68
69 extern qual qual_fromInt (int p_q) /*@*/ ;
70 extern /*@observer@*/ cstring qual_unparse (qual p_q) /*@*/ ;
71
72 extern bool qual_match (qual p_q1, qual p_q2) /*@*/ ;
73
74 extern bool qual_isUnknown (qual) /*@*/ ;
75 extern bool qual_isTrueNull (qual) /*@*/ ;
76 extern bool qual_isFalseNull (qual) /*@*/ ;
77 extern bool qual_isOwned (qual) /*@*/ ;
78 extern bool qual_isDependent (qual) /*@*/ ;
79 extern bool qual_isRefCounted (qual) /*@*/ ;
80 extern bool qual_isRefs (qual) /*@*/ ;
81 extern bool qual_isNewRef (qual) /*@*/ ;
82 extern bool qual_isKillRef (qual) /*@*/ ;
83 extern bool qual_isTempRef (qual) /*@*/ ;
84 extern bool qual_isLong (qual) /*@*/ ;
85 extern bool qual_isShort (qual) /*@*/ ;
86 extern bool qual_isSigned (qual) /*@*/ ;
87 extern bool qual_isUnsigned (qual) /*@*/ ;
88 extern bool qual_isUnique (qual) /*@*/ ;
89 extern bool qual_isExits (qual) /*@*/ ;
90 extern bool qual_isMayExit (qual) /*@*/ ;
91 extern bool qual_isNeverExit (qual) /*@*/ ;
92 extern bool qual_isTrueExit (qual) /*@*/ ;
93 extern bool qual_isFalseExit (qual) /*@*/ ;
94 extern bool qual_isConst (qual) /*@*/ ;
95 extern bool qual_isRestrict (qual) /*@*/ ;
96 extern bool qual_isVolatile (qual) /*@*/ ;
97 extern bool qual_isInline (qual) /*@*/ ;
98 extern bool qual_isExtern (qual) /*@*/ ;
99 extern bool qual_isStatic (qual) /*@*/ ;
100 extern bool qual_isAuto (qual) /*@*/ ;
101 extern bool qual_isRegister (qual) /*@*/ ;
102 extern bool qual_isOut (qual) /*@*/ ;
103 extern bool qual_isIn (qual) /*@*/ ;
104 extern bool qual_isYield (qual) /*@*/ ;
105 extern bool qual_isOnly (qual) /*@*/ ;
106 extern bool qual_isImpOnly (qual) /*@*/ ;
107 extern bool qual_isPartial (qual) /*@*/ ;
108 extern bool qual_isSpecial (qual) /*@*/ ;
109 extern bool qual_isKeep (qual) /*@*/ ;
110 extern bool qual_isKept (qual) /*@*/ ;
111 extern bool qual_isTemp (qual) /*@*/ ;
112 extern bool qual_isShared (qual) /*@*/ ;
113 extern bool qual_isRelDef (qual) /*@*/ ;
114 extern bool qual_isChecked (qual) /*@*/ ;
115 extern bool qual_isCheckMod (qual) /*@*/ ;
116 extern bool qual_isCheckedStrict (qual) /*@*/ ;
117 extern bool qual_isUnchecked (qual) /*@*/ ;
118 extern bool qual_isNull (qual) /*@*/ ;
119 extern bool qual_isIsNull (qual) /*@*/ ;
120 extern bool qual_isRelNull (qual) /*@*/ ;
121 extern bool qual_isNotNull (qual) /*@*/ ;
122 extern bool qual_isReturned (qual) /*@*/ ;
123 extern bool qual_isExposed (qual) /*@*/ ;
124 extern bool qual_isObserver (qual) /*@*/ ;
125 extern bool qual_isUnused (qual) /*@*/ ;
126 extern bool qual_isExternal (qual) /*@*/ ;
127 extern bool qual_isSef (qual) /*@*/ ;
128 extern bool qual_isAbstract (qual) /*@*/ ;
129 extern bool qual_isNumAbstract (qual) /*@*/ ;
130 extern bool qual_isEitherAbstract (/*@sef@*/ qual) /*@*/ ;
131 extern bool qual_isConcrete (qual) /*@*/ ;
132 extern bool qual_isMutable (qual) /*@*/ ;
133 extern bool qual_isImmutable (qual) /*@*/ ;
134 extern bool qual_isNullPred (/*@sef@*/ qual) /*@*/ ;   
135 extern bool qual_isRefQual (/*@sef@*/ qual) /*@*/ ;
136 extern bool qual_isUndef (/*@sef@*/ qual) /*@*/ ;
137 extern bool qual_isKilled (/*@sef@*/ qual) /*@*/ ;
138 extern /*@unused@*/ bool qual_isTypeQual (/*@sef@*/ qual) /*@*/ ;     
139 extern /*@unused@*/ bool qual_isControlQual (/*@sef@*/ qual) /*@*/ ; 
140 extern /*@unused@*/ bool qual_isStorageClass (/*@sef@*/ qual) /*@*/ ;
141 extern bool qual_isCQual (/*@sef@*/ qual) /*@*/ ;       
142 extern bool qual_isAllocQual (/*@sef@*/ qual) /*@*/ ;  
143 extern bool qual_isGlobalQual (/*@sef@*/ qual) /*@*/ ;  
144 extern bool qual_isImplied (/*@sef@*/ qual) /*@*/ ;   
145 extern bool qual_isExQual (/*@sef@*/ qual) /*@*/ ;      
146 extern bool qual_isAliasQual (/*@sef@*/ qual) /*@*/ ; 
147 extern bool qual_isPrintfLike (/*@sef@*/ qual) /*@*/ ; 
148 extern bool qual_isScanfLike (/*@sef@*/ qual) /*@*/ ; 
149 extern bool qual_isMessageLike (/*@sef@*/ qual) /*@*/ ; 
150 extern bool qual_isMetaState (/*@sef@*/ qual) /*@*/ ;
151 extern bool qual_isNullTerminated( /*@sef@*/ qual ) /*@*/ ;
152
153 extern bool qual_isMemoryAllocation (/*@sef@*/ qual) /*@*/ ;
154 # define qual_isMemoryAllocation(q) \
155    (qual_isOnly (q) || qual_isShared (q) || \
156     qual_isDependent (q) || qual_isOwned (q))
157
158 extern bool qual_isSharing (/*@sef@*/ qual) /*@*/ ;
159 # define qual_isSharing(q) \
160    (qual_isObserver (q) || qual_isExposed (q))
161
162 extern /*@observer@*/ annotationInfo qual_getAnnotationInfo (qual) /*@*/ ;
163
164 extern void qual_initMod (void) /*@modifies internalState@*/ ;
165 extern void qual_destroyMod (void) /*@modifies internalState@*/ ;
166
167 # define qual_isUnknown(q)        ((q)->kind == QU_UNKNOWN)
168 # define qual_isTrueNull(q)       ((q)->kind == QU_TRUENULL)
169 # define qual_isFalseNull(q)      ((q)->kind == QU_FALSENULL)
170 # define qual_isOwned(q)          ((q)->kind == QU_OWNED)
171 # define qual_isDependent(q)      ((q)->kind == QU_DEPENDENT)
172 # define qual_isRefCounted(q)     ((q)->kind == QU_REFCOUNTED)
173 # define qual_isRefs(q)           ((q)->kind == QU_REFS)
174 # define qual_isNewRef(q)         ((q)->kind == QU_NEWREF)
175 # define qual_isKillRef(q)        ((q)->kind == QU_KILLREF)
176 # define qual_isTempRef(q)        ((q)->kind == QU_TEMPREF)
177 # define qual_isLong(q)           ((q)->kind == QU_LONG)
178 # define qual_isShort(q)          ((q)->kind == QU_SHORT)
179 # define qual_isSigned(q)         ((q)->kind == QU_SIGNED)
180 # define qual_isUnsigned(q)       ((q)->kind == QU_UNSIGNED)
181 # define qual_isUnique(q)         ((q)->kind == QU_UNIQUE)
182 # define qual_isExits(q)          ((q)->kind == QU_EXITS)
183 # define qual_isMayExit(q)        ((q)->kind == QU_MAYEXIT)
184 # define qual_isNeverExit(q)      ((q)->kind == QU_NEVEREXIT)
185 # define qual_isTrueExit(q)       ((q)->kind == QU_TRUEEXIT)
186 # define qual_isFalseExit(q)      ((q)->kind == QU_FALSEEXIT)
187 # define qual_isConst(q)          ((q)->kind == QU_CONST)
188 # define qual_isRestrict(q)       ((q)->kind == QU_RESTRICT)
189 # define qual_isVolatile(q)       ((q)->kind == QU_VOLATILE)
190 # define qual_isInline(q)         ((q)->kind == QU_INLINE)
191 # define qual_isExtern(q)         ((q)->kind == QU_EXTERN)
192 # define qual_isStatic(q)         ((q)->kind == QU_STATIC)
193 # define qual_isAuto(q)           ((q)->kind == QU_AUTO)
194 # define qual_isRegister(q)       ((q)->kind == QU_REGISTER)
195 # define qual_isOut(q)            ((q)->kind == QU_OUT)
196 # define qual_isIn(q)             ((q)->kind == QU_IN)
197 # define qual_isYield(q)          ((q)->kind == QU_YIELD)
198 # define qual_isOnly(q)           ((q)->kind == QU_ONLY)
199 # define qual_isImpOnly(q)        ((q)->kind == QU_IMPONLY)
200 # define qual_isPartial(q)        ((q)->kind == QU_PARTIAL)
201 # define qual_isSpecial(q)        ((q)->kind == QU_SPECIAL)
202 # define qual_isKeep(q)           ((q)->kind == QU_KEEP)
203 # define qual_isKept(q)           ((q)->kind == QU_KEPT)
204 # define qual_isTemp(q)           ((q)->kind == QU_TEMP)
205 # define qual_isShared(q)         ((q)->kind == QU_SHARED)
206 # define qual_isRelDef(q)         ((q)->kind == QU_RELDEF)
207 # define qual_isNull(q)           ((q)->kind == QU_NULL)
208 # define qual_isIsNull(q)         ((q)->kind == QU_ISNULL)
209 # define qual_isRelNull(q)        ((q)->kind == QU_RELNULL)
210 # define qual_isNotNull(q)        ((q)->kind == QU_NOTNULL)
211 # define qual_isReturned(q)       ((q)->kind == QU_RETURNED)
212 # define qual_isExposed(q)        ((q)->kind == QU_EXPOSED)
213 # define qual_isObserver(q)       ((q)->kind == QU_OBSERVER)
214 # define qual_isUnused(q)         ((q)->kind == QU_UNUSED)
215 # define qual_isExternal(q)       ((q)->kind == QU_EXTERNAL)
216 # define qual_isSef(q)            ((q)->kind == QU_SEF)
217 # define qual_isAbstract(q)       ((q)->kind == QU_ABSTRACT)
218 # define qual_isNumAbstract(q)    ((q)->kind == QU_NUMABSTRACT)
219 # define qual_isConcrete(q)       ((q)->kind == QU_CONCRETE)
220 # define qual_isMutable(q)        ((q)->kind == QU_MUTABLE)
221 # define qual_isImmutable(q)      ((q)->kind == QU_IMMUTABLE)
222 # define qual_isChecked(q)        ((q)->kind == QU_CHECKED)
223 # define qual_isCheckMod(q)       ((q)->kind == QU_CHECKMOD)
224 # define qual_isCheckedStrict(q)  ((q)->kind == QU_CHECKEDSTRICT)
225 # define qual_isUnchecked(q)      ((q)->kind == QU_UNCHECKED)
226 # define qual_isUndef(q)          ((q)->kind == QU_UNDEF)
227 # define qual_isKilled(q)         ((q)->kind == QU_KILLED)
228 # define qual_isPrintfLike(q)     ((q)->kind == QU_PRINTFLIKE)
229 # define qual_isScanfLike(q)      ((q)->kind == QU_SCANFLIKE)
230 # define qual_isMessageLike(q)    ((q)->kind == QU_MESSAGELIKE)
231 # define qual_isMetaState(q)      ((q)->kind == QU_USERANNOT)
232 # define qual_isNullTerminated(q) ((q)->kind == QU_NULLTERMINATED)
233
234 extern qual qual_createPlain (quenum) /*@*/ ;
235 extern qual qual_createMetaState (/*@observer@*/ annotationInfo) /*@*/ ;
236 extern qual qual_createTrueNull (void) /*@*/ ;   
237 extern qual qual_createFalseNull (void) /*@*/ ;  
238 extern qual qual_createRefCounted (void) /*@*/ ; 
239 extern qual qual_createRefs (void) /*@*/ ;       
240 extern qual qual_createNewRef (void) /*@*/ ;     
241 extern qual qual_createKillRef (void) /*@*/ ;    
242 extern qual qual_createTempRef (void) /*@*/ ;    
243 extern qual qual_createNotNull (void) /*@*/ ;    
244 extern qual qual_createAbstract (void) /*@*/ ;  
245 extern qual qual_createNumAbstract (void) /*@*/ ;    
246 extern qual qual_createConcrete (void) /*@*/ ;   
247 extern qual qual_createMutable (void) /*@*/ ;    
248 extern qual qual_createImmutable (void) /*@*/ ;  
249 extern qual qual_createShort (void) /*@*/ ;      
250 extern qual qual_createLong (void) /*@*/ ;       
251 extern qual qual_createSigned (void) /*@*/ ;     
252 extern qual qual_createUnsigned (void) /*@*/ ;   
253 extern qual qual_createUnique (void) /*@*/ ;     
254 extern qual qual_createMayExit (void) /*@*/ ;    
255 extern qual qual_createExits (void) /*@*/ ;      
256 extern qual qual_createNeverExit (void) /*@*/ ;    
257 extern qual qual_createFalseExit (void) /*@*/ ;    
258 extern qual qual_createTrueExit (void) /*@*/ ;    
259 extern qual qual_createConst (void) /*@*/ ;      
260 extern qual qual_createRestrict (void) /*@*/ ;      
261 extern qual qual_createVolatile (void) /*@*/ ;   
262 extern qual qual_createInline (void) /*@*/ ;     
263 extern qual qual_createExtern (void) /*@*/ ;     
264 extern qual qual_createStatic (void) /*@*/ ;     
265 extern qual qual_createAuto (void) /*@*/ ;       
266 extern qual qual_createRegister (void) /*@*/ ;   
267 extern qual qual_createOut (void) /*@*/ ;        
268 extern qual qual_createIn (void) /*@*/ ;        
269 extern qual qual_createYield (void) /*@*/ ;      
270 extern qual qual_createOnly (void) /*@*/ ;       
271 extern qual qual_createOwned (void) /*@*/ ;      
272 extern qual qual_createDependent (void) /*@*/ ;  
273 extern qual qual_createRelDef (void) /*@*/ ;     
274 extern qual qual_createImpOnly (void) /*@*/ ;    
275 extern qual qual_createPartial (void) /*@*/ ;    
276 extern qual qual_createSpecial (void) /*@*/ ;    
277 extern qual qual_createKeep (void) /*@*/ ;       
278 extern qual qual_createKept (void) /*@*/ ;       
279 extern qual qual_createTemp (void) /*@*/ ;       
280 extern qual qual_createShared (void) /*@*/ ;     
281 extern qual qual_createNull (void) /*@*/ ;
282 extern qual qual_createIsNull (void) /*@*/ ;       
283 extern qual qual_createRelNull (void) /*@*/ ;    
284 extern qual qual_createReturned (void) /*@*/ ;   
285 extern qual qual_createExposed (void) /*@*/ ;    
286 extern qual qual_createObserver (void) /*@*/ ;   
287 extern qual qual_createUnused (void) /*@*/ ;     
288 extern qual qual_createExternal (void) /*@*/ ;     
289 extern qual qual_createSef (void) /*@*/ ;     
290 extern qual qual_createChecked (void) /*@*/ ;     
291 extern qual qual_createCheckMod (void) /*@*/ ;     
292 extern qual qual_createUnchecked (void) /*@*/ ;     
293 extern qual qual_createCheckedStrict (void) /*@*/ ;     
294 extern qual qual_createUndef (void) /*@*/ ;
295 extern qual qual_createKilled (void) /*@*/ ;
296 extern qual qual_createNullTerminated (void) /*@*/ ;
297
298 extern qual qual_createUnknown (void) /*@*/ ;
299 # define qual_createUnknown()    (qual_createPlain (QU_UNKNOWN))
300
301 extern qual qual_createPrintfLike (void) /*@*/ ;
302 extern qual qual_createScanfLike (void) /*@*/ ;
303 extern qual qual_createMessageLike (void) /*@*/ ;
304
305 # define qual_createPrintfLike()  (qual_createPlain (QU_PRINTFLIKE))
306 # define qual_createScanfLike()   (qual_createPlain (QU_SCANFLIKE))
307 # define qual_createMessageLike() (qual_createPlain (QU_MESSAGELIKE))
308
309 # define qual_createTrueNull()   qual_createPlain (QU_TRUENULL)
310 # define qual_createFalseNull()  qual_createPlain (QU_FALSENULL)
311 # define qual_createRefCounted() qual_createPlain (QU_REFCOUNTED)
312 # define qual_createRefs()       qual_createPlain (QU_REFS)
313 # define qual_createNewRef()     qual_createPlain (QU_NEWREF)
314 # define qual_createKillRef()    qual_createPlain (QU_KILLREF)
315 # define qual_createTempRef()    qual_createPlain (QU_TEMPREF)
316 # define qual_createNotNull()    qual_createPlain (QU_NOTNULL)
317 # define qual_createAbstract()   qual_createPlain (QU_ABSTRACT)
318 # define qual_createNumAbstract()   qual_createPlain (QU_NUMABSTRACT)
319 # define qual_createConcrete()   qual_createPlain (QU_CONCRETE)
320 # define qual_createMutable()    qual_createPlain (QU_MUTABLE)
321 # define qual_createImmutable()  qual_createPlain (QU_IMMUTABLE)
322 # define qual_createShort()      qual_createPlain (QU_SHORT)
323 # define qual_createLong()       qual_createPlain (QU_LONG)
324 # define qual_createSigned()     qual_createPlain (QU_SIGNED)
325 # define qual_createUnsigned()   qual_createPlain (QU_UNSIGNED)
326 # define qual_createUnique()     qual_createPlain (QU_UNIQUE)
327 # define qual_createMayExit()    qual_createPlain (QU_MAYEXIT)
328 # define qual_createExits()      qual_createPlain (QU_EXITS)
329 # define qual_createNeverExit()  qual_createPlain (QU_NEVEREXIT)
330 # define qual_createTrueExit()   qual_createPlain (QU_TRUEEXIT)
331 # define qual_createFalseExit()  qual_createPlain (QU_FALSEEXIT)
332 # define qual_createConst()      qual_createPlain (QU_CONST)
333 # define qual_createRestrict()   qual_createPlain (QU_RESTRICT)
334 # define qual_createVolatile()   qual_createPlain (QU_VOLATILE)
335 # define qual_createInline()     qual_createPlain (QU_INLINE)
336 # define qual_createExtern()     qual_createPlain (QU_EXTERN)
337 # define qual_createStatic()     qual_createPlain (QU_STATIC)
338 # define qual_createAuto()       qual_createPlain (QU_AUTO)
339 # define qual_createRegister()   qual_createPlain (QU_REGISTER)
340 # define qual_createOut()        qual_createPlain (QU_OUT)
341 # define qual_createIn()         qual_createPlain (QU_IN)
342 # define qual_createYield()      qual_createPlain (QU_YIELD)
343 # define qual_createOnly()       qual_createPlain (QU_ONLY)
344 # define qual_createOwned()      qual_createPlain (QU_OWNED)
345 # define qual_createDependent()  qual_createPlain (QU_DEPENDENT)
346 # define qual_createRelDef()     qual_createPlain (QU_RELDEF)
347 # define qual_createImpOnly()    qual_createPlain (QU_IMPONLY)
348 # define qual_createPartial()    qual_createPlain (QU_PARTIAL)
349 # define qual_createSpecial()    qual_createPlain (QU_SPECIAL)
350 # define qual_createKeep()       qual_createPlain (QU_KEEP)
351 # define qual_createKept()       qual_createPlain (QU_KEPT)
352 # define qual_createTemp()       qual_createPlain (QU_TEMP)
353 # define qual_createShared()     qual_createPlain (QU_SHARED)
354 # define qual_createNull()       qual_createPlain (QU_NULL)
355 # define qual_createIsNull()     qual_createPlain (QU_ISNULL)
356 # define qual_createRelNull()    qual_createPlain (QU_RELNULL)
357 # define qual_createReturned()   qual_createPlain (QU_RETURNED)
358 # define qual_createExposed()    qual_createPlain (QU_EXPOSED)
359 # define qual_createObserver()   qual_createPlain (QU_OBSERVER)
360 # define qual_createUnused()     qual_createPlain (QU_UNUSED)
361 # define qual_createExternal()   qual_createPlain (QU_EXTERNAL)
362 # define qual_createSef()        qual_createPlain (QU_SEF)
363 # define qual_createChecked()    qual_createPlain (QU_CHECKED)
364 # define qual_createCheckMod()   qual_createPlain (QU_CHECKMOD)
365 # define qual_createCheckedStrict()  qual_createPlain (QU_CHECKEDSTRICT)
366 # define qual_createUnchecked()   qual_createPlain (QU_UNCHECKED)
367 # define qual_createUndef()       qual_createPlain (QU_UNDEF)
368 # define qual_createKilled()      qual_createPlain (QU_KILLED)
369
370
371 # define qual_createNullTerminated() qual_createPlain (QU_NULLTERMINATED)
372
373 /* start modifications */
374 /* This is used to check if we the qualifier matches any of the
375 len/size/nullterminated types */
376
377 extern bool qual_isBufQualifier(/*@sef@*/ qual)  /*@*/;
378
379 # define qual_isBufQualifier(q) \
380   (qual_isNullTerminated(q))
381
382 /* end of modification/s */
383
384 extern bool qual_isGlobCheck (/*@sef@*/ qual p_q) /*@*/ ;
385 # define qual_isGlobCheck(q) \
386   (qual_isChecked (q) || qual_isCheckMod (q) \
387    || qual_isUnchecked (q) || qual_isCheckedStrict (q))
388
389 # define qual_isNullPred(q) \
390   (qual_isTrueNull (q) || qual_isFalseNull (q))
391
392 # define qual_isRefQual(q) \
393   (qual_isRefCounted(q) || qual_isRefs(q) || qual_isNewRef (q) || \
394    qual_isKillRef (q) || qual_isTempRef (q))
395
396 extern bool qual_isNullStateQual (/*@sef@*/ qual) /*@*/ ;
397 # define qual_isNullStateQual(q) \
398   (qual_isNull (q) || qual_isIsNull (q) || qual_isRelNull (q) \
399    || qual_isNotNull (q))
400
401 # define qual_isTypeQual(q) \
402   (qual_isAbstract(q) || qual_isNumAbstract(q) || qual_isConcrete(q) \
403    || qual_isMutable(q) || qual_isImmutable(q))
404
405 # define qual_isEitherAbstract(q) \
406   (qual_isAbstract(q) || qual_isNumAbstract(q))
407
408 # define qual_isControlQual(q)  (qual_isExits(q) || qual_isMayExit (q))
409 # define qual_isStorageClass(q) (qual_isExtern(q) || qual_isStatic(q))
410 # define qual_isCQual(q) \
411   (qual_isAuto(q) || qual_isRegister(q) || qual_isInline(q) \
412    || qual_isConst(q) || qual_isVolatile(q) || qual_isShort(q) \
413    || qual_isLong (q) || qual_isSigned (q) || qual_isUnsigned (q))
414
415 # define qual_isAllocQual(q) \
416   (qual_isOut (q) || qual_isIn (q) || qual_isSpecial (q) \
417    || qual_isPartial (q) || qual_isRelDef (q))
418
419 # define qual_isGlobalQual(q) \
420   (qual_isUndef(q) || qual_isKilled (q))
421
422 # define qual_isImplied(q)      (qual_isImpOnly(q))
423 # define qual_isExQual(q)       (qual_isExposed (q) || qual_isObserver (q))
424
425 # define qual_isAliasQual(q) \
426   (qual_isOnly(q) || qual_isImpOnly(q) || qual_isTemp(q) \
427    || qual_isOwned (q) || qual_isShared (q) || qual_isUnique (q) \
428    || qual_isDependent (q) || qual_isKeep (q) || qual_isKept (q))
429
430 extern bool qual_isExitQual (/*@sef@*/ qual p_q) /*@*/ ;  
431 # define qual_isExitQual(q) \
432   (qual_isExits (q) || qual_isNeverExit (q) || qual_isMayExit (q) \
433    || qual_isTrueExit (q) || qual_isFalseExit (q))
434
435 extern char qual_abstractCode (qual) /*@*/ ;
436 extern qual qual_abstractFromCodeChar (char) /*@*/ ;
437
438 # else
439 # error "Multiple include"
440 # endif
441
442
443
444
445
This page took 0.091325 seconds and 3 git commands to generate.