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