Hacked const and volatile modifiers a bit
[fw/sdcc] / src / SDCCval.c
index 67bb1a44fa7c7c83d99e4359f779eaffa52cf46b..b2a9899615e51d6ceba129b227685c6f64fb96fb 100644 (file)
@@ -304,10 +304,13 @@ symbolVal (symbol * sym)
     }
 
   if (*sym->rname)
-    sprintf (val->name, "%s", sym->rname);
+    {
+       SNPRINTF (val->name, sizeof(val->name), "%s", sym->rname);
+    }
   else
-    sprintf (val->name, "_%s", sym->name);
-
+    {
+       SNPRINTF (val->name, sizeof(val->name), "_%s", sym->name);
+    }
 
   return val;
 }
@@ -377,11 +380,11 @@ valueFromLit (double lit)
 
   if ((((long) lit) - lit) == 0)
     {
-      sprintf (buffer, "%ld", (long) lit);
+      SNPRINTF (buffer, sizeof(buffer), "%ld", (long) lit);
       return constVal (buffer);
     }
 
-  sprintf (buffer, "%f", lit);
+  SNPRINTF (buffer, sizeof(buffer), "%f", lit);
   return constFloatVal (buffer);
 }
 
@@ -787,37 +790,37 @@ charVal (char *s)
       switch (*s)
        {
        case 'n':
-         SPEC_CVAL (val->type).v_int = '\n';
+         SPEC_CVAL (val->type).v_uint = '\n';
          break;
        case 't':
-         SPEC_CVAL (val->type).v_int = '\t';
+         SPEC_CVAL (val->type).v_uint = '\t';
          break;
        case 'v':
-         SPEC_CVAL (val->type).v_int = '\v';
+         SPEC_CVAL (val->type).v_uint = '\v';
          break;
        case 'b':
-         SPEC_CVAL (val->type).v_int = '\b';
+         SPEC_CVAL (val->type).v_uint = '\b';
          break;
        case 'r':
-         SPEC_CVAL (val->type).v_int = '\r';
+         SPEC_CVAL (val->type).v_uint = '\r';
          break;
        case 'f':
-         SPEC_CVAL (val->type).v_int = '\f';
+         SPEC_CVAL (val->type).v_uint = '\f';
          break;
        case 'a':
-         SPEC_CVAL (val->type).v_int = '\a';
+         SPEC_CVAL (val->type).v_uint = '\a';
          break;
        case '\\':
-         SPEC_CVAL (val->type).v_int = '\\';
+         SPEC_CVAL (val->type).v_uint = '\\';
          break;
        case '\?':
-         SPEC_CVAL (val->type).v_int = '\?';
+         SPEC_CVAL (val->type).v_uint = '\?';
          break;
        case '\'':
-         SPEC_CVAL (val->type).v_int = '\'';
+         SPEC_CVAL (val->type).v_uint = '\'';
          break;
        case '\"':
-         SPEC_CVAL (val->type).v_int = '\"';
+         SPEC_CVAL (val->type).v_uint = '\"';
          break;
 
        case '0' :
@@ -904,7 +907,7 @@ floatFromVal (value * val)
   }
 
   if (IS_BITVAR(val->etype)) {
-    return (double) SPEC_CVAL (val->etype).v_ulong;
+    return (double) SPEC_CVAL (val->etype).v_uint;
   }
 
   if (SPEC_NOUN (val->etype) == V_VOID) {
@@ -1528,18 +1531,21 @@ valForArray (ast * arrExpr)
 
   val = newValue ();
   if (!lval)
-    sprintf (buffer, "%s", AST_SYMBOL (arrExpr->left)->rname);
+    {
+       SNPRINTF (buffer, sizeof(buffer), "%s", AST_SYMBOL (arrExpr->left)->rname);
+    }
   else
-    sprintf (buffer, "%s", lval->name);
+    {
+       SNPRINTF (buffer, sizeof(buffer), "%s", lval->name);
+    }
 
-  sprintf (val->name, "(%s + %d)", buffer,
+  SNPRINTF (val->name, sizeof(val->name), "(%s + %d)", buffer,
           (int) AST_LIT_VALUE (arrExpr->right) * size);
 
   val->type = newLink ();
   if (SPEC_SCLS (arrExpr->left->etype) == S_CODE)
     {
       DCL_TYPE (val->type) = CPOINTER;
-      DCL_PTR_CONST (val->type) = port->mem.code_ro;
     }
   else if (SPEC_SCLS (arrExpr->left->etype) == S_XDATA)
     DCL_TYPE (val->type) = FPOINTER;
@@ -1595,18 +1601,21 @@ valForStructElem (ast * structT, ast * elemT)
 
   val = newValue ();
   if (!lval)
-    sprintf (buffer, "%s", AST_SYMBOL (structT)->rname);
+    {
+       SNPRINTF(buffer, sizeof(buffer), "%s", AST_SYMBOL (structT)->rname);
+    }
   else
-    sprintf (buffer, "%s", lval->name);
+    {
+       SNPRINTF (buffer, sizeof(buffer), "%s", lval->name);
+    }
 
-  sprintf (val->name, "(%s + %d)", buffer,
+  SNPRINTF (val->name, sizeof(val->name), "(%s + %d)", buffer,
           (int) sym->offset);
 
   val->type = newLink ();
   if (SPEC_SCLS (structT->etype) == S_CODE)
     {
       DCL_TYPE (val->type) = CPOINTER;
-      DCL_PTR_CONST (val->type) = port->mem.code_ro;
     }
   else if (SPEC_SCLS (structT->etype) == S_XDATA)
     DCL_TYPE (val->type) = FPOINTER;
@@ -1639,7 +1648,7 @@ valForCastAggr (ast * aexpr, sym_link * type, ast * cnst, int op)
 
   val = newValue ();
 
-  sprintf (val->name, "(%s %c %d)",
+  SNPRINTF (val->name, sizeof(val->name), "(%s %c %d)",
           AST_SYMBOL (aexpr)->rname, op,
           getSize (type->next) * (int) AST_LIT_VALUE (cnst));
 
@@ -1662,7 +1671,7 @@ valForCastArr (ast * aexpr, sym_link * type)
 
   val = newValue ();
 
-  sprintf (val->name, "(%s)",
+  SNPRINTF (val->name, sizeof(val->name), "(%s)",
           AST_SYMBOL (aexpr)->rname);
 
   val->type = type;