]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
c0de361f | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003. |
885824d3 | 3 | ** See ../LICENSE for license information. |
4 | ** | |
5 | */ | |
6 | /* | |
7 | ** clabstract.h | |
8 | */ | |
9 | ||
10 | # ifndef CLABSTRACT_H | |
11 | # define CLABSTRACT_H | |
12 | ||
13 | extern void setArgsUsed (void) /*@modifies internalState@*/ ; | |
14 | extern void setSpecialFunction (qual p_qu) /*@modifies internalState@*/ ; | |
15 | extern bool isFlipOldStyle(void) /*@*/ ; | |
16 | extern bool isNewStyle(void) /*@*/ ; | |
17 | extern bool processingIterVars(void) /*@*/ ; | |
18 | ||
19 | extern ctype declareEnum (/*@only@*/ cstring p_ename, /*@only@*/ enumNameList p_el); | |
20 | extern ctype declareStruct (/*@temp@*/ cstring p_id, /*@only@*/ uentryList p_f); | |
21 | extern ctype declareUnnamedStruct (/*@only@*/ uentryList p_f); | |
22 | ||
23 | extern ctype declareUnion (/*@temp@*/ cstring p_id, /*@only@*/ uentryList p_f); | |
24 | extern ctype declareUnnamedUnion (/*@only@*/ uentryList p_f); | |
25 | ||
885824d3 | 26 | extern ctype declareUnnamedEnum (/*@only@*/ enumNameList p_el); |
27 | extern ctype handleEnum (/*@only@*/ cstring p_id); | |
28 | extern ctype handleStruct (/*@only@*/ cstring p_id); | |
29 | extern ctype handleUnion (/*@only@*/ cstring p_id); | |
30 | ||
31 | extern uentryList handleParamIdList (/*@returned@*/ /*@dependent@*/ uentryList p_params); | |
32 | extern uentryList handleParamTypeList (/*@dependent@*/ /*@returned@*/ uentryList p_params); | |
33 | ||
34 | extern uentryList fixUentryList (/*@only@*/ idDeclList p_tl, qtype p_q); | |
35 | extern uentryList fixUnnamedDecl (qtype p_q) /*@*/ ; | |
36 | ||
37 | extern /*@exposed@*/ uentry getCurrentIter(void); | |
38 | ||
39 | extern void processNamedDecl (idDecl p_t); | |
e83c79ec | 40 | |
41 | extern void clabstract_declareType (/*@only@*/ exprNodeList, /*@only@*/ warnClause) | |
42 | /*@modifies internalState@*/ ; | |
43 | ||
28bf4b0b | 44 | extern void clabstract_declareFunction (/*@only@*/ idDecl p_tid) |
885824d3 | 45 | /*@globals internalState@*/ ; |
46 | extern void doVaDcl (void); | |
7ebcc5bb | 47 | extern void oldStyleDoneParams (void); |
885824d3 | 48 | |
49 | extern void setCurrentParams (/*@dependent@*/ uentryList p_ue); | |
50 | extern void clearCurrentParams (void); | |
51 | ||
52 | extern /*@exposed@*/ sRef fixModifiesId (cstring p_s); | |
28bf4b0b | 53 | extern /*@exposed@*/ sRef fixStateClausesId (cstring p_s); |
885824d3 | 54 | |
55 | extern void setFlipOldStyle(void); | |
56 | extern void setNewStyle(void); | |
57 | extern void unsetProcessingGlobals (void); | |
58 | extern void setProcessingIterVars (uentry p_iter); | |
59 | extern void setProcessingTypedef (/*@only@*/ qtype p_q); | |
60 | extern void setProcessingVars (/*@only@*/ qtype p_q); | |
61 | extern void setStorageClass (storageClassCode p_sc); | |
62 | extern void storeLoc (void); | |
63 | extern void unsetProcessingTypedef (void); | |
64 | extern void unsetProcessingVars (void); | |
65 | ||
66 | extern /*@only@*/ uentry makeCurrentParam (idDecl p_t); | |
67 | extern void setProcessingGlobalsList (void); | |
68 | ||
28bf4b0b | 69 | extern /*@exposed@*/ sRef modListArrayFetch (/*@exposed@*/ sRef p_s, sRef p_mexp); |
70 | extern /*@exposed@*/ sRef modListPointer (/*@exposed@*/ sRef p_s); | |
885824d3 | 71 | extern /*@exposed@*/ sRef modListFieldAccess (sRef p_s, /*@only@*/ cstring p_f); |
72 | extern /*@exposed@*/ sRef modListArrowAccess (sRef p_s, /*@only@*/ cstring p_f); | |
73 | ||
28bf4b0b | 74 | extern /*@dependent@*/ sRef clabstract_unrecognizedGlobal (cstring p_s); |
75 | extern /*@dependent@*/ sRef clabstract_createGlobal (/*@temp@*/ sRef p_sr, /*@only@*/ qualList p_quals); | |
885824d3 | 76 | |
77 | extern void checkDoneParams (void); | |
885824d3 | 78 | extern void exitParamsTemp (void); |
79 | extern void enterParamsTemp (void); | |
80 | ||
81 | extern void clearProcessingGlobMods (void); | |
82 | extern bool isProcessingGlobMods (void); | |
83 | extern void setProcessingGlobMods (void); | |
84 | ||
85 | extern void setFunctionNoGlobals (void); | |
86 | extern int iterParamNo (void); | |
87 | extern void nextIterParam (void); | |
88 | extern void declareCIter (cstring p_name, /*@owned@*/ uentryList p_params); | |
89 | extern void checkModifiesId (uentry p_ue); | |
28bf4b0b | 90 | extern /*@exposed@*/ sRef checkStateClausesId (uentry p_ue); |
885824d3 | 91 | |
92 | extern void checkConstant (qtype p_t, idDecl p_id) ; | |
93 | extern void checkValueConstant (qtype p_t, idDecl p_id, exprNode p_e) ; | |
94 | ||
95 | extern void declareStaticFunction (/*@only@*/ idDecl p_tid) | |
96 | /*@globals internalState@*/ ; | |
97 | ||
103db890 | 98 | /*drl |
99 | added to header 1/19/2001 | |
100 | (added to clabstract earilier | |
101 | */ | |
102 | ||
b37cf05e | 103 | extern sRef checkbufferConstraintClausesId (uentry p_ue); |
6317f163 | 104 | extern void setImplicitfcnConstraints (void); |
bb25bea6 | 105 | |
6317f163 | 106 | /*@observer@*/ constraintList getImplicitFcnConstraints (void); |
2934b455 | 107 | |
103db890 | 108 | /* end drl*/ |
bb25bea6 | 109 | |
110 | ||
28bf4b0b | 111 | extern /*@dependent@*/ sRef clabstract_checkGlobal (/*@only@*/ exprNode) ; |
112 | ||
113 | extern void clabstract_initMod (void) /*@modifies internalState@*/ ; | |
114 | ||
885824d3 | 115 | # else |
116 | # error "Multiple include" | |
117 | # endif | |
118 | ||
119 | ||
120 | ||
121 | ||
122 | ||
123 | ||
124 | ||
125 |