X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/a8e557d3925057c15b9551be5f9f712fec5f6c90..140c27a82ebb7e4c8d1e59ab5fce12c793e587f8:/src/Headers/constraintExprData.h diff --git a/src/Headers/constraintExprData.h b/src/Headers/constraintExprData.h index ca1679a..c034882 100644 --- a/src/Headers/constraintExprData.h +++ b/src/Headers/constraintExprData.h @@ -5,17 +5,16 @@ typedef enum { - PLUS, - MINUS + BINARYOP_UNDEFINED, + BINARYOP_PLUS, + BINARYOP_MINUS } constraintExprBinaryOpKind; typedef enum { UNARYOP_UNDEFINED, - VALUE, CALLSAFE, - MAXSET, MINSET, MAXREAD, MINREAD, - NULLTERMINATED + MAXSET, MINSET, MAXREAD, MINREAD } constraintExprUnaryOpKind; @@ -35,63 +34,48 @@ typedef struct constraintExprUnaryOp_ } constraintExprUnaryOp; -typedef union _constraintExprData +typedef union constraintExprData { constraintExprBinaryOp binaryOp; constraintExprUnaryOp unaryOp; constraintTerm term; -} * constraintExprData; +} *constraintExprData; -/*@constant null constraintExprData constraintExprData_undefined; @*/ -# define constraintExprData_undefined ((constraintExprData)NULL) +extern /*@falsewhennull@*/ bool constraintExprData_isDefined (/*@temp@*/ /*@observer@*/ /*@reldef@*/ constraintExprData p_e) /*@*/ ; +# define constraintExprData_isDefined(e) ((e) != NULL) -extern /*@falsenull@*/ bool constraintExprData_isDefined (/*@observer@*/ /*@reldef@*/constraintExprData p_e) /*@*/ ; -extern /*@unused@*/ /*@truenull@*/ bool constraintExprData_isUndefined (constraintExprData p_e) /*@*/ ; -extern /*@truenull@*/ bool constraintExprData_isError (constraintExprData p_e) /*@*/ ; +extern void constraintExprData_freeBinaryExpr (/*@only@*/ constraintExprData) ; +extern void constraintExprData_freeUnaryExpr (/*@only@*/ constraintExprData) ; +extern void constraintExprData_freeTerm (/*@only@*/ constraintExprData) ; -# define constraintExprData_isDefined(e) ((e) != constraintExprData_undefined) -# define constraintExprData_isUndefined(e) ((e) == constraintExprData_undefined) -# define constraintExprData_isError(e) ((e) == constraintExprData_undefined) +extern constraintExprData constraintExprData_termSetTerm ( /*@returned@*/ /*@partial@*/ constraintExprData p_data, /*@only@*/ constraintTerm p_term); -constraintExprData constraintExprData_termSetTerm (/*@out@*/ constraintExprData data, constraintTerm term); +extern /*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData p_data) /*@*/; -//constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind) /*@*/; +extern constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*/ /*@reldef@*/ constraintExprData p_data) /*@*/; -constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) /*@*/; +extern /*@observer@*/ constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ /*@reldef@*/constraintExprData p_data) /*@*/; -constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (constraintExprData data) /*@*/; +extern constraintExprData constraintExprData_unaryExprSetOp (/*@partial@*/ /*@returned@*/ constraintExprData p_data, constraintExprUnaryOpKind p_op); -constraintExpr constraintExprData_unaryExprGetExpr (constraintExprData data) /*@*/; +extern constraintExprData constraintExprData_unaryExprSetExpr (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr); +extern constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@partial@*/constraintExprData p_data) /*@*/; -// /*@special@*/ constraintExprData constraintExprData_unaryExprSetOp ( /*@out@*/ /*@special@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) /*@sets result->unaryOp.unaryOp@*/; +extern /*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/; +extern /*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/; -constraintExprData constraintExprData_unaryExprSetOp ( /*@out@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op); +extern constraintExprData constraintExprData_binaryExprSetExpr1 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr) ; - constraintExprData constraintExprData_unaryExprSetExpr (/*@out@*/ /*@returns@*/ constraintExprData data, constraintExpr expr); +extern constraintExprData constraintExprData_binaryExprSetExpr2 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr); +extern constraintExprData constraintExprData_binaryExprSetOp (/*@partial@*/ /*@returned@*/ /*@out@*/constraintExprData p_data, constraintExprBinaryOpKind p_op); -constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data) /*@*/; - -constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)/*@*/; - -constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data)/*@*/; - -/*@special@*/ constraintExprData constraintExprData_binaryExprSetExpr1 (/*@returned@*/ /*@special@*/constraintExprData data, constraintExpr expr) /*@defines result->binaryOp.expr1 @*/; - -/*@special@*/ constraintExprData constraintExprData_binaryExprSetExpr2 (/*@returned@*/ /*@special@*/constraintExprData data, constraintExpr expr) /*@defines result->binaryOp.expr2 @*/; - -/*@special@*/ constraintExprData constraintExprData_binaryExprSetOp (/*@returned@*/ /*@out@*/constraintExprData data, constraintExprBinaryOpKind op) /*@defines result->binaryOp.binaryOp@*/; - -constraintExprData constraintExprData_copyBinaryExpr(constraintExprData data); - -constraintExprData constraintExprData_copyUnaryExpr(constraintExprData data); - -constraintExprData constraintExprData_copyTerm (constraintExprData data); +extern /*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData p_data); +extern /*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData p_data); +extern /*@only@*/ constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData p_data); #else - #error "Multiple Include" - #endif