]> andersk Git - splint.git/blame - src/Headers/context.h
Manual flags.
[splint.git] / src / Headers / context.h
CommitLineData
885824d3 1/*
28bf4b0b 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
885824d3 3** See ../LICENSE for license information.
4**
5*/
6/*
7** context.h
8*/
9
10# ifndef CONTEXT_H
11# define CONTEXT_H
12
13extern void context_pushLoc (void);
14extern void context_popLoc (void);
15
16extern bool context_doMerge (void);
17extern bool context_doDump (void);
18
19extern void context_resetAllFlags (void);
20
21extern /*@unused@*/ cstring context_unparseFlagMarkers (void) /*@*/ ;
22
23extern void context_enterDoWhileClause (void) /*@modifies internalState@*/ ;
24
25extern bool context_hasMods (void);
26
27extern bool context_isSystemDir (cstring p_dir) /*@*/ ;
28
28bf4b0b 29extern /*@observer@*/ cstring context_selectedLibrary (void) /*@*/ ;
885824d3 30extern bool context_usingPosixLibrary (void) /*@*/ ;
31extern bool context_usingAnsiLibrary (void) /*@*/ ;
32extern flagcode context_getLibrary (void) /*@*/ ;
33extern void context_setLibrary (flagcode) /*@modifies internalState@*/ ;
34
35extern void context_setPreprocessing (void) /*@modifies internalState@*/;
36extern void context_clearPreprocessing (void) /*@modifies internalState@*/;
37extern bool context_isPreprocessing (void) /*@*/;
990ec868 38extern bool context_loadingLibrary (void) /*@*/ ;
885824d3 39
40extern void context_setInCommandLine (void) /*@modifies internalState@*/ ;
41extern void context_clearInCommandLine (void) /*@modifies internalState@*/ ;
b7e84605 42
43extern void context_checkGlobalScope (void) /*@modifies internalState@*/ ;
44
885824d3 45extern bool context_isInCommandLine (void) /*@*/ ;
28bf4b0b 46extern bool context_inXHFile (void) /*@*/ ;
885824d3 47
48extern void context_resetErrors (void);
49
50extern int context_getLinesProcessed (void) /*@*/ ;
51extern int context_getSpecLinesProcessed (void) /*@*/ ;
52
53extern bool context_setBoolName (void) /*@*/ ;
54extern /*@observer@*/ cstring context_getBoolName (void) /*@*/ ;
55extern /*@observer@*/ cstring context_printBoolName (void) /*@*/ ;
56extern /*@observer@*/ cstring context_getFalseName (void) /*@*/ ;
57extern /*@observer@*/ cstring context_getTrueName (void) /*@*/ ;
58extern /*@observer@*/ cstring context_getLarchPath (void) /*@*/ ;
59extern /*@observer@*/ cstring context_getLCLImportDir (void) /*@*/ ;
60
61extern bool context_checkExport (uentry p_e) /*@*/ ;
62extern bool context_checkGlobMod (sRef p_el) /*@*/ ;
63extern bool context_checkGlobUse (uentry p_glob);
64extern bool context_checkAliasGlob (uentry p_glob);
65extern bool context_checkInternalUse (void);
66extern void context_recordFileModifies (/*@dependent@*/ sRefSet p_mods);
67extern void context_clearJustPopped (void);
68extern bool context_justPopped (void);
69
70extern void context_enterTrueClause (exprNode p_e);
71extern void context_enterFalseClause (exprNode p_e);
72extern void context_exitClause (exprNode p_pred,
73 exprNode p_tbranch, exprNode p_fbranch);
74extern void context_exitInnerSafe (void);
75extern void context_exitInnerPlain (void) /*@modifies internalState@*/ ;
76
77extern bool context_inGlobalScope (void);
78extern bool context_inInnerScope (void);
79extern void context_setProtectVars (void);
80
81extern int context_getLimit (void) /*@*/ ;
82extern bool context_unlimitedMessages (void) /*@*/ ;
83
84extern void context_releaseVars (void);
85extern void context_sizeofReleaseVars (void);
86extern bool context_inProtectVars (void);
87
88extern bool context_hasFileAccess (typeId p_t);
89
90extern void context_hideShowscan (void);
91extern void context_unhideShowscan (void);
92
93extern void context_setMode (cstring p_s);
982cc10b 94extern void context_setModeNoWarn (cstring p_s);
885824d3 95extern void context_exitAllClauses (void);
28bf4b0b 96extern void context_exitAllClausesQuiet (void);
885824d3 97extern bool context_inHeader (void);
98
99extern /*@dependent@*/ /*@exposed@*/ fileTable context_fileTable (void) /*@*/ ;
100
101extern /*@exposed@*/ messageLog context_messageLog (void);
102extern /*@dependent@*/ /*@observer@*/ cstring context_tmpdir (void);
103
28bf4b0b 104extern void context_enterMTfile (void) /*@modifies internalState@*/ ;
105extern void context_exitMTfile (void) /*@modifies internalState@*/ ;
106
885824d3 107# ifndef NOLCL
108extern void context_enterLCLfile (void);
109extern void context_exitLCLfile (void);
110extern void context_enterImport (void) ;
111extern void context_leaveImport (void) ;
112extern void context_processedSpecLine (void) /*@modifies internalState@*/ ;
113extern int context_getLCLExpect (void) /*@*/ ;
114extern bool context_msgLh (void) /*@*/ ;
115extern bool context_inLCLLib (void) /*@globals internalState@*/ ;
116extern bool context_inImport (void) /*@globals internalState@*/ ;
117extern void context_resetSpecLines (void) /*@modifies internalState@*/ ;
118# endif
119
120extern void context_exitMacroCache (void);
121extern void context_enterSuppressRegion (void);
122extern void context_exitSuppressRegion (void);
123extern void context_enterMacroFile (void);
124extern typeIdSet context_fileAccessTypes (void);
125extern void context_addFileAccessType (typeId p_t);
126extern void context_removeFileAccessType (typeId p_t);
127extern /*@observer@*/ uentryList context_getParams (void);
128
129extern bool context_isSpecialFile (cstring p_fname);
130extern /*@observer@*/ cstring context_inFunctionName (void) /*@*/ ;
131extern ctype context_currentFunctionType (void) /*@*/ ;
28bf4b0b 132extern void context_exitCFile (void);
885824d3 133extern void context_enterConstantMacro (/*@dependent@*/ /*@exposed@*/ uentry p_e);
134extern void context_enterMacro (/*@observer@*/ uentry p_e);
135extern void context_enterFunction (/*@exposed@*/ uentry p_e);
136extern void context_exitFunction (void);
137extern void context_initMod (void) /*@modifies internalState@*/ ;
138extern void context_enterInnerContext(void);
139extern void context_exitInner (exprNode p_exp);
140extern bool context_globAccess (sRef p_s);
141extern /*@observer@*/ globSet context_getUsedGlobs (void);
142extern bool context_hasAccess (typeId p_t);
143extern bool context_couldHaveAccess (typeId p_t);
b7e84605 144extern /*@only@*/ cstring context_unparse (void) /*@*/ ;
885824d3 145extern void context_setFunctionDefined (fileloc p_loc);
146extern void context_setFlagTemp (flagcode p_f, bool p_b);
147
a0a162cd 148extern /*@unused@*/ void context_showFilelocStack (void) ;
149
885824d3 150extern bool context_getFlag (flagcode p_d) /*@*/ ;
28bf4b0b 151extern bool context_flagOn (flagcode p_f, fileloc p_loc) /*@*/ ;
152
885824d3 153extern int context_getLineLen (void) /*@*/ ;
154# define context_getLineLen() ((int)context_getValue(FLG_LINELEN))
155
28bf4b0b 156extern int context_getIndentSpaces (void) /*@*/ ;
157# define context_getIndentSpaces() ((int)context_getValue(FLG_INDENTSPACES))
158
885824d3 159extern int context_getValue (flagcode p_flag) /*@*/ ;
160extern void context_setValueAndFlag (flagcode p_flag, int p_val)
161 /*@modifies internalState@*/ ;
162
163extern /*@unused@*/ int context_getCounter (flagcode p_flag) /*@*/ ;
164extern /*@unused@*/ void context_incCounter (flagcode p_flag)
165 /*@modifies internalState@*/ ;
166extern /*@unused@*/ void context_decCounter (flagcode p_flag)
167 /*@modifies internalState@*/ ;
168
169extern bool context_maybeSet (flagcode p_d) /*@*/ ;
170
171extern /*@observer@*/ cstring context_getString (flagcode p_flag) /*@*/ ;
172extern void context_setString (flagcode p_flag, /*@only@*/ cstring p_val)
173 /*@modifies internalState@*/ ;
174
175extern bool context_getDebug (flagcode p_d);
176# define context_getDebug(p_d) context_getFlag(p_d)
177
178extern void context_userSetFlag (flagcode p_f, bool p_b);
179
180extern int context_getExpect (void) /*@*/ ;
181
182extern /*@observer@*/ sRefSet context_modList(void);
183extern /*@exposed@*/ uentry context_getHeader(void) /*@*/;
28bf4b0b 184extern void context_usedGlobal (/*@exposed@*/ sRef p_el);
885824d3 185extern void context_resetModeFlags (void);
186extern ctype context_typeofZero (void);
187extern ctype context_typeofOne (void);
188extern void context_enterFile (void);
189extern void context_enterUnknownMacro (/*@dependent@*/ /*@observer@*/ uentry p_e);
190extern char context_getCommentMarkerChar (void);
191extern void context_setCommentMarkerChar (char p_c);
192extern bool context_inMacroConstant (void) /*@*/ ;
193extern void context_returnFunction (void);
194extern bool context_processingMacros (void);
195
196extern void context_saveLocation (void);
197extern /*@only@*/ fileloc context_getSaveLocation (void);
198
199extern void context_setFileId (fileId p_s);
200extern void context_setFilename(fileId p_fid, int p_lineno)
201 /*@globals fileloc g_currentloc; @*/
202 /*@modifies g_currentloc@*/ ;
203
204extern void context_fileSetFlag (flagcode p_f, ynm p_set);
205
206extern /*@unused@*/ /*@only@*/ cstring context_unparseAccess (void) /*@*/ ;
207extern bool context_inFunction(void) /*@*/ ;
208extern bool context_inFunctionLike (void) /*@*/ ;
209
210extern void context_setMacroMissingParams (void);
211extern void context_resetMacroMissingParams (void);
212extern bool context_isMacroMissingParams (void) /*@*/ ;
b7e84605 213extern bool context_inUnknownMacro (void) /*@*/ ;
885824d3 214
215/*@observer@*/ cstring context_getDump (void) /*@*/ ;
216/*@observer@*/ cstring context_getMerge (void) /*@*/ ;
217
218extern void context_incLineno (void);
219extern bool context_inSuppressRegion (void) /*@*/ ;
220extern void context_exitTrueClause (exprNode p_pred, exprNode p_tbranch);
221extern void context_destroyMod (void) /*@modifies internalState@*/ ;
222extern void context_addMacroCache (/*@only@*/ cstring p_def);
223extern void context_processAllMacros (void);
224extern void context_addComment (/*@only@*/ cstring p_def);
225extern void context_enterSuppressLine (int p_count);
226extern bool context_inSuppressZone (fileloc p_fl) /*@*/ ;
227extern void context_dumpModuleAccess (FILE *p_fout);
228extern void context_loadModuleAccess (FILE *p_in);
229extern bool context_inIterDef (void) /*@*/ ;
230extern bool context_inMacro (void) /*@*/ ;
231extern bool context_inIterEnd (void) /*@*/ ;
232extern ctype context_getRetType (void) /*@*/ ;
233
234extern void context_enterIterDef (/*@observer@*/ uentry p_le);
235extern void context_enterIterEnd (/*@observer@*/ uentry p_le);
236extern void context_addBoolAccess (void);
237extern bool context_canAccessBool (void);
238extern void context_quietExitFunction (void);
239
240/* speedy shortcuts for frequently used flags */
241
242extern bool context_msgBoolInt (void) /*@*/ ;
243extern bool context_msgCharInt (void) /*@*/ ;
244extern bool context_msgEnumInt (void) /*@*/ ;
245extern bool context_msgPointerArith (void) /*@*/ ;
246extern bool context_msgStrictOps (void) /*@*/ ;
247
248extern void context_exitStructInnerContext (void);
249extern void context_enterStructInnerContext (void);
250extern bool context_inRealFunction (void) /*@*/ ;
251extern void context_exitOrClause (exprNode p_pred, exprNode p_tbranch);
252extern void context_exitAndClause (exprNode p_pred, exprNode p_tbranch);
253extern void context_enterOrClause (exprNode p_e);
254extern void context_enterAndClause (exprNode p_e);
255
256extern void context_enterForClause (exprNode p_e);
257extern void context_enterWhileClause (exprNode p_e);
258
259extern void context_enterIterClause (void);
260extern void context_exitIterClause (exprNode p_body);
261
262extern void context_exitWhileClause (exprNode p_pred, exprNode p_body);
263extern void context_exitDoWhileClause (exprNode p_pred);
264extern void context_exitForClause (exprNode p_forPred, exprNode p_body);
265
266extern /*@only@*/ cstring context_unparseClauses (void) /*@*/ ;
267extern /*@observer@*/ globSet context_getGlobs (void) /*@*/ ;
268
269extern /*@only@*/ cstring context_getMessageAnnote (void);
270extern void context_clearMessageAnnote (void);
271extern bool context_hasMessageAnnote (void);
272extern void context_setMessageAnnote (/*@only@*/ cstring p_s);
273extern bool context_suppressFlagMsg (flagcode p_flag, fileloc p_fl);
274extern bool context_suppressNotFlagMsg (flagcode p_flag, fileloc p_fl);
275extern void context_enterCaseClause (exprNode p_e);
276extern void context_enterSwitch (exprNode p_e);
277extern void context_exitSwitch (exprNode p_e, bool p_allpaths);
278
279extern bool context_showFunction (void);
280extern void context_setShownFunction (void);
281
282extern void context_clearAliasAnnote (void);
283extern cstring context_getAliasAnnote (void);
284extern bool context_hasAliasAnnote (void);
285extern void context_setAliasAnnote (/*@observer@*/ sRef p_s, /*@observer@*/ sRef p_t);
286
287extern bool context_inDeepLoop (void) /*@globals internalState@*/ ;
288extern bool context_inDeepLoopSwitch (void) /*@globals internalState@*/ ;
289extern bool context_inConditional (void) /*@globals internalState@*/ ;
290extern bool context_inDeepSwitch (void) /*@globals internalState@*/ ;
291
292extern clause context_breakClause (void);
293extern clause context_nextBreakClause (void);
294
295extern bool context_anyErrors (void) /*@globals internalState@*/ ;
296extern void context_hasError (void) /*@modifies internalState@*/ ;
297extern int context_numErrors (void) /*@globals internalState@*/ ;
298extern bool context_neednl (void);
299extern void context_setNeednl (void);
300
301extern bool context_inGlobalContext (void) /*@globals internalState@*/ ;
302extern bool context_inMacroFunction (void) /*@globals internalState@*/ ;
303
304extern /*@observer@*/ cstring context_moduleName (void) /*@*/ ;
305extern void context_recordFileGlobals (/*@dependent@*/ globSet p_mods);
306extern void context_checkSuppressCounts (void) /*@modifies g_msgstream@*/ ;
307
28bf4b0b 308extern bool context_inFunctionHeader (void) /*@globals internalState@*/ ;
309extern void context_enterFunctionHeader (void) /*@modifies internalState@*/ ;
310extern void context_exitFunctionHeader (void) /*@modifies internalState@*/ ;
311
312extern bool context_inFunctionDeclaration (void) /*@globals internalState@*/ ;
313extern void context_enterFunctionDeclaration (/*@exposed@*/ uentry) /*@modifies internalState@*/ ;
314extern void context_exitFunctionDeclaration (void) /*@modifies internalState@*/ ;
7ebcc5bb 315extern void context_enterOldStyleScope (void) /*@modifies internalState@*/ ;
316extern void context_completeOldStyleFunction (/*@exposed@*/ uentry p_e) /*@modifies internalState@*/ ;
885824d3 317
a0a162cd 318extern ctype context_boolImplementationType (void) /*@*/ ;
28bf4b0b 319extern /*@observer@*/ /*@null@*/ annotationInfo
320 context_lookupAnnotation (cstring p_annot) /*@*/ ;
321
322extern /*@observer@*/ metaStateTable context_getMetaStateTable (void)
323 /*@globals internalState@*/ ;
324
325extern /*@observer@*/ metaStateInfo context_lookupMetaStateInfo (cstring p_key)
326 /*@globals internalState@*/ ;
327
328extern void context_addAnnotation (/*@only@*/ annotationInfo)
329 /*@modifies internalState@*/ ;
330
331extern void context_addMetaState (/*@only@*/ cstring, /*@only@*/ metaStateInfo)
332 /*@modifies internalState@*/ ;
333
6970c11b 334extern valueTable context_createValueTable (sRef p_s, /*@only@*/ stateInfo p_sinfo)
28bf4b0b 335 /*@globals internalState@*/ ;
336
6970c11b 337extern valueTable context_createGlobalMarkerValueTable (/*@only@*/ stateInfo p_sinfo)
28bf4b0b 338 /*@globals internalState@*/ ;
339
340extern int context_getBugsLimit (void) /*@*/ ;
341# define context_getBugsLimit() ((int)context_getValue(FLG_BUGSLIMIT))
a0a162cd 342
885824d3 343# else
344# error "Multiple include"
345# endif
346
347
348
349
350
351
352
353
This page took 0.097395 seconds and 5 git commands to generate.