]> andersk Git - splint.git/blame - src/Headers/functionClause.h
*** empty log message ***
[splint.git] / src / Headers / functionClause.h
CommitLineData
28bf4b0b 1/*
2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3** See ../LICENSE for license information.
4**
5*/
6/*
7** functionClause.h
8*/
9
10# ifndef FUNCTIONCLAUSE_H
11# define FUNCTIONCLAUSE_H
12
13/*@private@*/ typedef enum {
14 FCK_GLOBALS,
15 FCK_MODIFIES,
16 FCK_WARN,
17 FCK_STATE,
18 FCK_DEAD
19} functionClauseKind;
20
21struct s_functionClause {
22 functionClauseKind kind;
23 union {
24 globalsClause globals;
25 modifiesClause modifies;
26 warnClause warn;
27 stateClause state;
28 } val;
29} ;
30
31/* functionClause defined in forwardTypes.h */
32
33/*@constant null functionClause functionClause_undefined; @*/
34# define functionClause_undefined NULL
35
36extern /*@falsenull@*/ bool functionClause_isDefined(functionClause) /*@*/ ;
37# define functionClause_isDefined(p_h) ((p_h) != functionClause_undefined)
38
39extern bool functionClause_isGlobals (functionClause) /*@*/ ;
40# define functionClause_isGlobals(p_h) (functionClause_matchKind(p_h, FCK_GLOBALS))
41
42extern bool functionClause_isNoMods (/*@sef@*/ functionClause) /*@*/ ;
43# define functionClause_isNoMods(p_h) (functionClause_matchKind(p_h, FCK_MODIFIES) && modifiesClause_isNoMods (functionClause_getModifies (p_h)))
44extern bool functionClause_isModifies (functionClause) /*@*/ ;
45# define functionClause_isModifies(p_h) (functionClause_matchKind(p_h, FCK_MODIFIES))
46
47extern bool functionClause_isState (functionClause) /*@*/ ;
48# define functionClause_isState(p_h) (functionClause_matchKind(p_h, FCK_STATE))
49
50extern bool functionClause_isWarn (functionClause) /*@*/ ;
51# define functionClause_isWarn(p_h) (functionClause_matchKind(p_h, FCK_WARN))
52
53extern /*@truenull@*/ bool functionClause_isUndefined(functionClause) /*@*/ ;
54# define functionClause_isUndefined(p_h) ((p_h) == functionClause_undefined)
55
56extern functionClause functionClause_createGlobals (/*@only@*/ globalsClause) /*@*/ ;
57extern functionClause functionClause_createModifies (/*@only@*/ modifiesClause) /*@*/ ;
58extern functionClause functionClause_createWarn (/*@only@*/ warnClause) /*@*/ ;
59extern functionClause functionClause_createState (/*@only@*/ stateClause) /*@*/ ;
60
61extern /*@exposed@*/ globalsClause functionClause_getGlobals (functionClause) /*@*/ ;
62extern /*@exposed@*/ modifiesClause functionClause_getModifies (functionClause) /*@*/ ;
63extern /*@exposed@*/ stateClause functionClause_getState (functionClause) /*@*/ ;
64extern /*@exposed@*/ warnClause functionClause_getWarn (functionClause) /*@*/ ;
65
66extern /*@only@*/ stateClause functionClause_takeState (functionClause p_fc) /*@modifies p_fc@*/ ;
67extern /*@only@*/ warnClause functionClause_takeWarn (functionClause p_fc) /*@modifies p_fc@*/ ;
68
69extern bool functionClause_matchKind (functionClause p_p, functionClauseKind p_kind) /*@*/ ;
70
71extern void functionClause_free (/*@only@*/ functionClause p_node) ;
72extern /*@only@*/ cstring functionClause_unparse (functionClause p_p) /*@*/ ;
73
74# else
75# error "Multiple include"
76# endif
This page took 0.094222 seconds and 5 git commands to generate.