]> git.gag.com Git - fw/sdcc/blobdiff - support/cpp/cppexp.c
stdio.h not needed
[fw/sdcc] / support / cpp / cppexp.c
index 9dc3b874625b4ccbfcfae2470f87e9787629687f..2bc875f70a65f3b9dc2f7b1c014e266797e9f663 100644 (file)
@@ -24,10 +24,6 @@ Written by Per Bothner 1994. */
 
 /* Parse a C expression from text in a string  */
 
-//#if defined(_MSC_VER)
-//#include <malloc.h>
-//#endif
-
 #include "config.h"   
 #include "cpplib.h"
 
@@ -36,8 +32,8 @@ Written by Per Bothner 1994. */
 //extern char *xmalloc PARAMS ((unsigned));
 //extern char *xrealloc PARAMS ((char *, unsigned));
 
-#ifdef MULTIBYTE_CHARS
 #include <stdlib.h>
+#ifdef MULTIBYTE_CHARS
 #include <locale.h>
 #endif
 
@@ -230,7 +226,7 @@ parse_number (
     if (largest_digit < digit)
       largest_digit = digit;
     nd = n * base + digit;
-    overflow |= ULONG_MAX_over_base < n | nd < n;
+    overflow |= ((ULONG_MAX_over_base < n) | (nd < n)) ;
     n = nd;
   }
 
@@ -286,7 +282,7 @@ cpp_lex (
 cpp_reader *pfile)
 {
   register int c;
-  register int namelen;
+/*  register int namelen; */
   register struct token *toktab;
   enum cpp_token token;
   struct operation op;
@@ -339,7 +335,7 @@ cpp_reader *pfile)
         It is mostly copied from c-lex.c.  */
       {
         register int result = 0;
-       register num_chars = 0;
+       register int num_chars = 0;
        unsigned width = MAX_CHAR_TYPE_SIZE;
        int wide_flag = 0;
        int max_chars;
@@ -371,7 +367,7 @@ cpp_reader *pfile)
              {
                c = cpp_parse_escape (pfile, &ptr);
                if (width < HOST_BITS_PER_INT
-                 && (unsigned) c >= (1 << width))
+                 && (unsigned) c >= (1U << width))
                    cpp_pedwarn (pfile,
                                 "escape sequence out of range for character");
              }
@@ -652,7 +648,7 @@ right_shift (
 
 #define COMPARE(OP) \
   top->unsignedp = 0;\
-  top->value = (unsigned1 || unsigned2) ? (unsigned long) v1 OP v2 : (v1 OP v2)
+  top->value = (unsigned1 || unsigned2) ? (unsigned long) v1 OP (unsigned long) v2 : (v1 OP v2)
 
 /* Parse and evaluate a C expression, reading from PFILE.
    Returns the value of the expression.  */
@@ -676,7 +672,7 @@ cpp_parse_expr (
   struct operation *stack = init_stack;
   struct operation *limit = stack + INIT_STACK_SIZE;
   register struct operation *top = stack;
-  int lprio, rprio;
+  int lprio, rprio = 0;
 
   top->rprio = 0;
   top->flags = 0;
@@ -969,7 +965,7 @@ cpp_parse_expr (
          if (top != stack)
            cpp_error (pfile, "internal error in #if expression");
          if (stack != init_stack)
-           free (stack);
+           Safe_free (stack);
          return top->value;
        }
       top++;
@@ -998,7 +994,7 @@ cpp_parse_expr (
     }
  syntax_error:
   if (stack != init_stack)
-    free (stack);
+    Safe_free (stack);
   skip_rest_of_line (pfile);
   return 0;
 }