]> andersk Git - splint.git/blame - src/Headers/functionClause.h
Fixes after removing -unrecogcomments flag for make splintme.
[splint.git] / src / Headers / functionClause.h
CommitLineData
28bf4b0b 1/*
c0de361f 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
28bf4b0b 3** See ../LICENSE for license information.
4**
5*/
6/*
7** functionClause.h
8*/
9
10# ifndef FUNCTIONCLAUSE_H
11# define FUNCTIONCLAUSE_H
12
517a2db3 13/*:private:*/ typedef enum {
28bf4b0b 14 FCK_GLOBALS,
15 FCK_MODIFIES,
16 FCK_WARN,
17 FCK_STATE,
d9a28762 18 FCK_ENSURES,
19 FCK_REQUIRES,
28bf4b0b 20 FCK_DEAD
21} functionClauseKind;
22
23struct s_functionClause {
24 functionClauseKind kind;
25 union {
bb7c2085 26 /*@null@*/ globalsClause globals;
27 /*@null@*/ modifiesClause modifies;
28 /*@null@*/ warnClause warn;
29 /*@null@*/ stateClause state;
30 /*@null@*/ functionConstraint constraint;
28bf4b0b 31 } val;
32} ;
33
34/* functionClause defined in forwardTypes.h */
35
36/*@constant null functionClause functionClause_undefined; @*/
37# define functionClause_undefined NULL
38
0e41eb0e 39extern /*@falsewhennull@*/ bool functionClause_isDefined(functionClause) /*@*/ ;
28bf4b0b 40# define functionClause_isDefined(p_h) ((p_h) != functionClause_undefined)
41
42extern bool functionClause_isGlobals (functionClause) /*@*/ ;
43# define functionClause_isGlobals(p_h) (functionClause_matchKind(p_h, FCK_GLOBALS))
44
45extern bool functionClause_isNoMods (/*@sef@*/ functionClause) /*@*/ ;
46# define functionClause_isNoMods(p_h) (functionClause_matchKind(p_h, FCK_MODIFIES) && modifiesClause_isNoMods (functionClause_getModifies (p_h)))
47extern bool functionClause_isModifies (functionClause) /*@*/ ;
48# define functionClause_isModifies(p_h) (functionClause_matchKind(p_h, FCK_MODIFIES))
49
50extern bool functionClause_isState (functionClause) /*@*/ ;
51# define functionClause_isState(p_h) (functionClause_matchKind(p_h, FCK_STATE))
52
53extern bool functionClause_isWarn (functionClause) /*@*/ ;
54# define functionClause_isWarn(p_h) (functionClause_matchKind(p_h, FCK_WARN))
55
d9a28762 56extern bool functionClause_isEnsures (functionClause) /*@*/ ;
57# define functionClause_isEnsures(p_h) (functionClause_matchKind(p_h, FCK_ENSURES))
58
59extern bool functionClause_isRequires (functionClause) /*@*/ ;
60# define functionClause_isRequires(p_h) (functionClause_matchKind(p_h, FCK_REQUIRES))
61
0e41eb0e 62extern /*@nullwhentrue@*/ bool functionClause_isUndefined(functionClause) /*@*/ ;
28bf4b0b 63# define functionClause_isUndefined(p_h) ((p_h) == functionClause_undefined)
64
65extern functionClause functionClause_createGlobals (/*@only@*/ globalsClause) /*@*/ ;
66extern functionClause functionClause_createModifies (/*@only@*/ modifiesClause) /*@*/ ;
67extern functionClause functionClause_createWarn (/*@only@*/ warnClause) /*@*/ ;
68extern functionClause functionClause_createState (/*@only@*/ stateClause) /*@*/ ;
3814599d 69extern functionClause functionClause_createEnsures (/*@only@*/ functionConstraint) /*@*/ ;
70extern functionClause functionClause_createRequires (/*@only@*/ functionConstraint) /*@*/ ;
28bf4b0b 71
72extern /*@exposed@*/ globalsClause functionClause_getGlobals (functionClause) /*@*/ ;
73extern /*@exposed@*/ modifiesClause functionClause_getModifies (functionClause) /*@*/ ;
74extern /*@exposed@*/ stateClause functionClause_getState (functionClause) /*@*/ ;
75extern /*@exposed@*/ warnClause functionClause_getWarn (functionClause) /*@*/ ;
3814599d 76extern /*@exposed@*/ functionConstraint functionClause_getEnsures (functionClause) /*@*/ ;
77extern /*@exposed@*/ functionConstraint functionClause_getRequires (functionClause) /*@*/ ;
28bf4b0b 78
79extern /*@only@*/ stateClause functionClause_takeState (functionClause p_fc) /*@modifies p_fc@*/ ;
3814599d 80extern /*@only@*/ functionConstraint functionClause_takeEnsures (functionClause p_fc) /*@modifies p_fc@*/ ;
81extern /*@only@*/ functionConstraint functionClause_takeRequires (functionClause p_fc) /*@modifies p_fc@*/ ;
28bf4b0b 82extern /*@only@*/ warnClause functionClause_takeWarn (functionClause p_fc) /*@modifies p_fc@*/ ;
83
84extern bool functionClause_matchKind (functionClause p_p, functionClauseKind p_kind) /*@*/ ;
85
86extern void functionClause_free (/*@only@*/ functionClause p_node) ;
87extern /*@only@*/ cstring functionClause_unparse (functionClause p_p) /*@*/ ;
88
89# else
90# error "Multiple include"
91# endif
This page took 0.073631 seconds and 5 git commands to generate.