]> git.sur5r.net Git - cc65/commitdiff
Allow to disable the "Result of comparison is constant" warning.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 28 Nov 2010 21:16:46 +0000 (21:16 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 28 Nov 2010 21:16:46 +0000 (21:16 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4883 b7a2c559-68d2-44c3-8de9-860c34a00d81

doc/cc65.sgml
src/cc65/error.c
src/cc65/error.h
src/cc65/expr.c

index c5e45087216bbc6dc21973488dc275c0ab3bc2c3..020109e4ca47b20a6ebcb94a17fe1d77e24a1b73 100644 (file)
@@ -469,10 +469,14 @@ Here is a description of all the command line options:
 
   The following warning names are currently recognized:
   <descrip>
+  <tag><tt/const-comparison/</tag>
+        Warn if the result of a comparison is constant.
   <tag><tt/error/</tag>
         Treat all warnings as errors.
   <tag><tt/no-effect/</tag>
         Warn about statements that don't have an effect.
+  <tag><tt/struct-param/</tag>
+        Warn when passing structs by value.
   <tag><tt/unknown-pragma/</tag>
         Warn about known #pragmas.
   <tag><tt/unused-label/</tag>
index bce570e34780c3033ac6f193f82178fd51067347..1b4a04e85a52406993f3630250ef6e1a04e9a91a 100644 (file)
@@ -64,12 +64,13 @@ unsigned WarningCount       = 0;
 IntStack WarnEnable         = INTSTACK(1);  /* Enable warnings */
 IntStack WarningsAreErrors  = INTSTACK(0);  /* Treat warnings as errors */
                                             /* Warn about: */
-IntStack WarnNoEffect       = INTSTACK(1);  /* ... statements without an effect */
-IntStack WarnStructParam    = INTSTACK(1);  /* ... structs passed by val */
-IntStack WarnUnusedLabel    = INTSTACK(1);  /* ... unused labels */
-IntStack WarnUnusedParam    = INTSTACK(1);  /* ... unused parameters */
-IntStack WarnUnusedVar      = INTSTACK(1);  /* ... unused variables */
-IntStack WarnUnknownPragma  = INTSTACK(1);  /* ... unknown #pragmas */
+IntStack WarnConstComparison= INTSTACK(1);  /* - constant comparison results */
+IntStack WarnNoEffect       = INTSTACK(1);  /* - statements without an effect */
+IntStack WarnStructParam    = INTSTACK(1);  /* - structs passed by val */
+IntStack WarnUnusedLabel    = INTSTACK(1);  /* - unused labels */
+IntStack WarnUnusedParam    = INTSTACK(1);  /* - unused parameters */
+IntStack WarnUnusedVar      = INTSTACK(1);  /* - unused variables */
+IntStack WarnUnknownPragma  = INTSTACK(1);  /* - unknown #pragmas */
 
 /* Map the name of a warning to the intstack that holds its state */
 typedef struct WarnMapEntry WarnMapEntry;
@@ -80,6 +81,7 @@ struct WarnMapEntry {
 static WarnMapEntry WarnMap[] = {
     /* Keep sorted, even if this isn't used for now */
     { &WarningsAreErrors,       "error"                 },
+    { &WarnConstComparison,     "const-comparison"      },
     { &WarnNoEffect,            "no-effect"             },
     { &WarnStructParam,         "struct-param"          },
     { &WarnUnknownPragma,       "unknown-pragma"        },
index 3a4f9c053376e41347a407409e2431991c17ea8b..ce8bacb512bf176d94621aa32982a21853ee777e 100644 (file)
@@ -61,12 +61,13 @@ extern unsigned WarningCount;
 extern IntStack WarnEnable;             /* Enable warnings */
 extern IntStack WarningsAreErrors;      /* Treat warnings as errors */
                                         /* Warn about: */
-extern IntStack WarnNoEffect;           /* ... statements without an effect */
-extern IntStack WarnStructParam;        /* ... structs passed by val */
-extern IntStack WarnUnusedLabel;        /* ... unused labels */
-extern IntStack WarnUnusedParam;        /* ... unused parameters */
-extern IntStack WarnUnusedVar;          /* ... unused variables */
-extern IntStack WarnUnknownPragma;      /* ... unknown #pragmas */
+extern IntStack WarnConstComparison;    /* - constant comparison results */
+extern IntStack WarnNoEffect;           /* - statements without an effect */
+extern IntStack WarnStructParam;        /* - structs passed by val */
+extern IntStack WarnUnusedLabel;        /* - unused labels */
+extern IntStack WarnUnusedParam;        /* - unused parameters */
+extern IntStack WarnUnusedVar;          /* - unused variables */
+extern IntStack WarnUnknownPragma;      /* - unknown #pragmas */
 
 
 
index b0bc18d1481c5a4c3148c2506737e88002fc3e6c..4e65e294cdc1dd69a06345ab29e79d65fd783944 100644 (file)
@@ -261,7 +261,7 @@ static void WarnConstCompareResult (void)
  * preprocessor mode.
  */
 {
-    if (!Preprocessing) {
+    if (!Preprocessing && IS_Get (&WarnConstComparison) != 0) {
         Warning ("Result of comparison is constant");
     }
 }