]> granicus.if.org Git - flex/commitdiff
avoid warning in generated code, with -Cf
authorrlar <rlar>
Sun, 20 Mar 2016 19:13:42 +0000 (20:13 +0100)
committerWill Estes <westes575@gmail.com>
Mon, 28 Mar 2016 20:41:15 +0000 (16:41 -0400)
warning: conversion to 'unsigned int' from 'int' may change the sign of the result [-Wsign-conversion]

src/flex.skl
src/gen.c
src/main.c

index 4c7d3227d29cc32b54b4872c810b5525dad168a1..e9e3ba304e90fd8d488c2d0ce4d6deec389f0358 100644 (file)
@@ -257,12 +257,10 @@ m4_ifdef( [[M4_YY_NO_ANSI_FUNC_PROTOS]],
 %ok-for-header
 
 %not-for-header
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
+/* Promotes a possibly negative, possibly signed char to an
+ *   integer in range [0..255] for use as an array index.
  */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
 %ok-for-header
 
 
index d10b737beeb214417584b4592d78e67275d1628e..1e65d6c3c3a8cbb0a940d9b9c064b5341d6893fb 100644 (file)
--- a/src/gen.c
+++ b/src/gen.c
@@ -752,7 +752,7 @@ void gen_next_compressed_state (char *char_map)
                out_dec ("if ( yy_current_state >= %d )\n", lastdfa + 2);
 
                ++indent_level;
-               indent_puts ("yy_c = yy_meta[(unsigned int) yy_c];");
+               indent_puts ("yy_c = yy_meta[yy_c];");
                --indent_level;
        }
 
@@ -760,7 +760,7 @@ void gen_next_compressed_state (char *char_map)
        --indent_level;
 
        indent_puts
-               ("yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];");
+               ("yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];");
 }
 
 
@@ -814,7 +814,7 @@ void gen_next_match (void)
                indent_puts ("YY_CHAR yy_c;\n");
                indent_put2s ("for ( yy_c = %s;", char_map);
                indent_puts
-                       ("      (yy_trans_info = &yy_current_state[(unsigned int) yy_c])->");
+                       ("      (yy_trans_info = &yy_current_state[yy_c])->");
                indent_puts ("yy_verify == yy_c;");
                indent_put2s ("      yy_c = %s )", char_map_2);
 
index e1edac31eece1081f335f923301f8a0c57fb0221..bc1a8bddf3addad32ec68c755cb31d895026e00b 100644 (file)
@@ -1609,10 +1609,7 @@ void readin (void)
                outn ("\n#define FLEX_DEBUG");
 
        OUT_BEGIN_CODE ();
-       if (csize == 256)
-               outn ("typedef unsigned char YY_CHAR;");
-       else
-               outn ("typedef char YY_CHAR;");
+       outn ("typedef flex_uint8_t YY_CHAR;");
        OUT_END_CODE ();
 
        if (C_plus_plus) {