]> andersk Git - splint.git/blobdiff - src/multiVal.c
Fixed problem with shadow parameters.
[splint.git] / src / multiVal.c
index ef454c05d71ab732fc61adcdf5f7b06f5bf26cb1..b2bee5816f02408feed67bc6a92c6834f8ac3877 100644 (file)
@@ -1,6 +1,6 @@
 /*
 ** Splint - annotation-assisted static program checker
-** Copyright (C) 1994-2002 University of Virginia,
+** Copyright (C) 1994-2003 University of Virginia,
 **         Massachusetts Institute of Technology
 **
 ** This program is free software; you can redistribute it and/or modify it
@@ -130,9 +130,12 @@ multiVal multiVal_invert (multiVal m)
 
 long multiVal_forceInt (multiVal m)
 {
-  llassert (multiVal_isInt (m));
-
-  return m->value.ival;
+  if (multiVal_isInt (m)) {
+    return m->value.ival;
+  } else {
+    llcontbug (message ("Multival is not int: %s", multiVal_unparse (m)));
+    return 0;
+  }
 }
 
 char multiVal_forceChar (multiVal m)
@@ -361,7 +364,7 @@ multiVal multiVal_divide (multiVal m1, multiVal m2)
          return multiVal_undefined;
        }
     case MVCHAR:   
-      if (m2->value.cval != 0)
+      if (m2->value.cval != (char) 0)
        {
          return (multiVal_makeChar ((char) (m1->value.cval / m2->value.cval)));
        }
@@ -370,14 +373,7 @@ multiVal multiVal_divide (multiVal m1, multiVal m2)
          return multiVal_undefined;
        }
     case MVDOUBLE:
-      if (m2->value.fval != 0.0)
-       {
-         return (multiVal_makeDouble (m1->value.fval / m2->value.fval));
-       }
-      else
-       {
-         return multiVal_undefined;
-       }
+      return multiVal_undefined; /* Don't attempt to divide floats */
     case MVSTRING: return multiVal_undefined;
     }
 
This page took 0.037692 seconds and 4 git commands to generate.