]> andersk Git - splint.git/blobdiff - src/constraintExpr.c
Fixed internal bug that occured when dumping bounds-check annotations involving struc...
[splint.git] / src / constraintExpr.c
index 1f22b7eb5fed73fe4563ed5751a663340edc8314..c40a31f2848d4d3b2144e29445d82576068ad77e 100644 (file)
 
 /*@-czechfcns@*/
 
+/*@access exprNode@*/ /* !!! NO! Don't do this recklessly! */
+/*@-nullderef@*/ /* !!! DRL needs to fix this code! */
+/*@-nullstate@*/ /* !!! DRL needs to fix this code! */
+/*@-temptrans@*/ /* !!! DRL needs to fix this code! */
 
 
-/*@access exprNode constraintExpr@*/
-
 static ctype constraintExpr_getOrigType (constraintExpr p_e);
 static bool constraintExpr_hasTypeChange(constraintExpr p_e) /*@*/;
 
@@ -356,7 +358,7 @@ static bool isZeroBinaryOp (constraintExpr expr)
 }
 
 /*@special@*/
-static constraintExpr constraintExpr_alloc (void) /*@post:isnull result->data@*/
+static /*@notnull@*/ constraintExpr constraintExpr_alloc (void) /*@post:isnull result->data@*/
 {
   constraintExpr ret;
   ret = dmalloc (sizeof (*ret) );
@@ -392,7 +394,7 @@ static constraintExpr constraintExpr_alloc (void) /*@post:isnull result->data@*/
 constraintExpr constraintExpr_copy (constraintExpr expr)
 {
   constraintExpr ret;
-  ret = constraintExpr_alloc();
+  ret = constraintExpr_alloc ();
   ret->kind = expr->kind;
   
   ret->data = copyExprData (expr->data, expr->kind);
@@ -425,7 +427,6 @@ constraintExpr constraintExpr_makeExprNode (exprNode e)
  exprNode t, t1, t2;
  lltok tok;
  
  llassert (e != NULL);
  
  data = e->edata;
@@ -672,7 +673,7 @@ constraintExpr constraintExpr_parseMakeUnaryOp (lltok op, constraintExpr cexpr)
   constraintExpr ret;
   ret = constraintExpr_makeUnaryOpConstraintExpr ( cexpr);
 
-  switch (op.tok)
+  switch (lltok_getTok (op))
     {
     case QMAXSET:
       ret->data = constraintExprData_unaryExprSetOp (ret->data, MAXSET);
@@ -796,14 +797,20 @@ constraintExpr constraintExpr_parseMakeBinaryOp (/*@only@*/ constraintExpr expr1
 {
   constraintExpr ret;
   ret = constraintExpr_makeBinaryOpConstraintExpr (expr1, expr2);
-  if (op.tok == TPLUS)
-    ret->data = constraintExprData_binaryExprSetOp(ret->data, BINARYOP_PLUS);
-  else if (op.tok == TMINUS)
-    ret->data = constraintExprData_binaryExprSetOp(ret->data, BINARYOP_MINUS);
-    else
-      {
-       llassert(FALSE);
-      }
+
+  if (lltok_getTok (op) == TPLUS)
+    {
+      ret->data = constraintExprData_binaryExprSetOp(ret->data, BINARYOP_PLUS);
+    }
+  else if (lltok_getTok (op) == TMINUS)
+    {
+      ret->data = constraintExprData_binaryExprSetOp(ret->data, BINARYOP_MINUS);
+    }
+  else
+    {
+      llassert (FALSE);
+    }
+
   return ret;
 }
 
@@ -2132,6 +2139,10 @@ void  constraintExpr_dump (/*@observer@*/ constraintExpr expr,  FILE *f)
   constraintExprKind kind;
   constraintTerm t;
   
+
+  DPRINTF((message("constraintExpr_dump:: dumping constraintExpr %s",
+                  constraintExpr_unparse(expr)
+                  ) ));
   
   kind = expr->kind;
   
This page took 0.038372 seconds and 4 git commands to generate.