]> git.sur5r.net Git - cc65/commitdiff
Check for sign problems in compares
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 15 Sep 2001 11:51:08 +0000 (11:51 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 15 Sep 2001 11:51:08 +0000 (11:51 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@932 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/expr.c
src/ca65/listing.c
src/ca65/main.c
src/ca65/make/gcc.mak
src/ca65/nexttok.c
src/ca65/scanner.c
src/ca65/symtab.c

index c0d8f8e46d7f874288ad45e064811f39d2bdb673..497a6143abbece80766303dd70af328eb520dd0f 100644 (file)
@@ -360,7 +360,7 @@ static int FuncStrAt (void)
     Index = ConstExpression ();
 
     /* Must be a valid index */
-    if (Index >= strlen (Str)) {
+    if (Index >= (long) strlen (Str)) {
        Error (ERR_RANGE);
        return 0;
     }
index e132b24c3982f369a3743174b2349d07d9d151e9..df256c5a88d9bc25c642cba25a19be2e54e43fe6 100644 (file)
@@ -67,7 +67,7 @@ ListLine*       LineLast = 0;         /* Last (current) listing line */
 /* Page and other formatting */
 int                    PageLength = -1;        /* Length of a listing page */
 static unsigned        PageNumber = 1;         /* Current listing page number */
-static unsigned PageLines  = 0;                /* Current line on page */
+static int      PageLines  = 0;                /* Current line on page */
 static unsigned ListBytes  = 12;       /* Number of bytes to list for one line */
 
 /* Switch the listing on/off */
index c86a3332a0c017827b59813dbcd60b1cc8989937..6f6784f53235c8f26b2befaeb987fdfa6bb200d5 100644 (file)
@@ -510,7 +510,7 @@ int main (int argc, char* argv [])
        { "--version",          0,      OptVersion              },
     };
 
-    int I;
+    unsigned I;
 
     /* Initialize the cmdline module */
     InitCmdLine (&argc, &argv, "ca65");
@@ -553,7 +553,7 @@ int main (int argc, char* argv [])
 
                        case 'o':
                            OutFile = GetArg (&I, 2);
-                           break;
+                           break;
 
                        case 's':
                            OptSmart (Arg, 0);
index 60b9239cc430871918dd5d4e749d34a364a42b2c..788c35338f4fb82b7e60f00c528cdcef8c409c53 100644 (file)
@@ -5,7 +5,7 @@
 # Library dir
 COMMON = ../common
 
-CFLAGS         = -g -O2 -Wall -I$(COMMON)
+CFLAGS         = -g -O2 -Wall -Wsign-compare -I$(COMMON)
 CC     = gcc
 EBIND  = emxbind
 LDFLAGS        =
index 5de8b9cb69b474cb5c83c145bebf2ae4577572bf..c1a5bb5d344edcea9ca4e7a28cee27416f0884d7 100644 (file)
@@ -295,7 +295,7 @@ static void FuncRight (void)
     List = CollectTokens (0, 9999);
 
     /* Delete tokens from the list until Count tokens are remaining */
-    while (List->Count > Count) {
+    while (List->Count > (unsigned) Count) {
        /* Get the first node */
        TokNode* T = List->Root;
 
index c75ec69784cf3e2ae811c1d3fbf38583e5d52446..a085068af46bc78b81c85e25d34addc64e91b056 100644 (file)
@@ -687,7 +687,7 @@ Again:
        /* Read the number */
        IVal = 0;
        while (IsDigit (C)) {
-           if (IVal > (0xFFFFFFFF / 10)) {
+                   if (IVal > (long) (0xFFFFFFFFUL / 10)) {
                        Error (ERR_NUM_OVERFLOW);
                IVal = 0;
            }
index 7af07dbfedeb847d14c62066126f01a27363a1f0..dc98fe3faf16fcaf53c85b73455542487d19706f 100644 (file)
@@ -592,7 +592,11 @@ void SymConDes (const char* Name, unsigned Type, unsigned Prio)
     SymEntry* S;
 
     /* Check the parameters */
+#if (CD_TYPE_MIN != 0)
     CHECK (Type >= CD_TYPE_MIN && Type <= CD_TYPE_MAX);
+#else
+    CHECK (Type <= CD_TYPE_MAX);
+#endif    
     CHECK (Prio >= CD_PRIO_MIN && Prio <= CD_PRIO_MAX);
 
     /* Don't accept local symbols */