diff --git a/compiler2/Type.cc b/compiler2/Type.cc
index 10acf4423f797b8a0bae30fc38ab1fca9cf1d9b9..0f0221295106f10e5d01a265c1206df2e9ad1542 100644
--- a/compiler2/Type.cc
+++ b/compiler2/Type.cc
@@ -3112,14 +3112,22 @@ namespace Common {
         err = true;
       }
       break;
-    case T_INT:
+    case T_INT: {
+      boolean first_digit = false; // there's at least one digit
       for (size_t i = (dval[0] == '-') ? 1 : 0; i < dval_len; ++i) {
         if (dval[i] < '0' || dval[i] > '9') {
           err = true;
           break; // from the loop
         }
+        else {
+          first_digit = true;
+        }
       }
-      break;
+      if (!first_digit) {
+        // empty value or just a '-'
+        err = true;
+      }
+      break; }
     case T_REAL: {
       if (strcmp(dval, "infinity") == 0 || strcmp(dval, "-infinity") == 0 ||
           strcmp(dval, "not_a_number") == 0) {