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