typedef enum
{
+ ERRORBADCONSTRAINTTERMTYPE,
EXPRNODE, SREF,
INTLITERAL
} constraintTermType;
{
binaryexpr,
unaryExpr,
- term,
+ term
}
constraintExprKind;
//constraintTerm constraintTerm_copy (constraintTerm term);
-int constraintExpr_getValue (constraintExpr expr);
+int constraintExpr_getValue (constraintExpr expr) /*@*/;
constraintExpr constraintExpr_setFileloc (constraintExpr expr, fileloc loc);
constraintExpr constraintExpr_copy (constraintExpr expr);
-cstring constraintExpr_unparse (constraintExpr ex);
-extern cstring constraintExpr_print (constraintExpr expr);
+cstring constraintExpr_unparse (constraintExpr ex) /*@*/;
+extern cstring constraintExpr_print (constraintExpr expr) /*@*/;
bool constraintExpr_similar (constraintExpr expr1, constraintExpr expr2);
constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, constraintExpr expr);
-constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data);
+constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data) /*@*/;
constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)/*@*/;
bool constraintExpr_hasMaxSet (constraintExpr expr);
+constraintExpr constraintExpr_propagateConstants (constraintExpr expr,
+ /*@out@*/ bool * propagate,
+ /*@out@*/ int *literal);
+
+constraintExpr constraintExpr_makeSRefMaxRead(sRef s);
+
#endif