]> andersk Git - splint.git/blame_incremental - src/Headers/constraintExprData.h
Made allocations involving sizeof work correctly (test/malloc.c).
[splint.git] / src / Headers / constraintExprData.h
... / ...
CommitLineData
1#ifndef __constraintExprData_h__
2#define __constraintExprData_h__
3
4typedef enum
5{
6 BINARYOP_UNDEFINED,
7 BINARYOP_PLUS,
8 BINARYOP_MINUS
9}
10constraintExprBinaryOpKind;
11
12typedef enum
13{
14 UNARYOP_UNDEFINED,
15 MAXSET, MINSET, MAXREAD, MINREAD
16 }
17constraintExprUnaryOpKind;
18
19typedef struct constraintExprBinaryOp_
20{
21 constraintExpr expr1;
22 constraintExprBinaryOpKind binaryOp;
23 constraintExpr expr2;
24} constraintExprBinaryOp;
25
26typedef struct constraintExprUnaryOp_
27{
28 constraintExpr expr;
29 constraintExprUnaryOpKind unaryOp;
30} constraintExprUnaryOp;
31
32typedef union constraintExprData
33{
34 constraintExprBinaryOp binaryOp;
35 constraintExprUnaryOp unaryOp;
36 constraintTerm term;
37} *constraintExprData;
38
39extern /*@falsewhennull@*/ bool constraintExprData_isDefined (/*@temp@*/ /*@observer@*/ /*@reldef@*/ constraintExprData p_e) /*@*/ ;
40# define constraintExprData_isDefined(e) ((e) != NULL)
41
42extern void constraintExprData_freeBinaryExpr (/*@only@*/ constraintExprData) ;
43extern void constraintExprData_freeUnaryExpr (/*@only@*/ constraintExprData) ;
44extern void constraintExprData_freeTerm (/*@only@*/ constraintExprData) ;
45
46extern constraintExprData constraintExprData_termSetTerm ( /*@returned@*/ /*@partial@*/ constraintExprData p_data, /*@only@*/ constraintTerm p_term);
47
48extern /*@exposed@*/ constraintTerm
49constraintExprData_termGetTerm (/*@observer@*/ constraintExprData p_data) /*@*/;
50
51extern constraintExprUnaryOpKind
52constraintExprData_unaryExprGetOp (/*@observer@*/ /*@reldef@*/ constraintExprData p_data) /*@*/;
53
54extern /*@observer@*/ constraintExpr
55constraintExprData_unaryExprGetExpr (/*@observer@*/ /*@reldef@*/constraintExprData p_data) /*@*/;
56
57extern constraintExprData
58constraintExprData_unaryExprSetOp (/*@partial@*/ /*@returned@*/ constraintExprData p_data, constraintExprUnaryOpKind p_op);
59
60extern constraintExprData constraintExprData_unaryExprSetExpr (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr);
61
62extern constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@partial@*/constraintExprData p_data) /*@*/;
63
64extern /*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/;
65
66extern /*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/;
67
68extern constraintExprData constraintExprData_binaryExprSetExpr1 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr) ;
69
70extern constraintExprData constraintExprData_binaryExprSetExpr2 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr);
71
72extern constraintExprData constraintExprData_binaryExprSetOp (/*@partial@*/ /*@returned@*/ /*@out@*/constraintExprData p_data, constraintExprBinaryOpKind p_op);
73
74extern /*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData p_data);
75extern /*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData p_data);
76extern /*@only@*/ constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData p_data);
77
78#else
79#error "Multiple Include"
80#endif
This page took 0.03506 seconds and 5 git commands to generate.