This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: genrecog: Address -Wsign-compare diagnostics


On 05/08/2015 03:09 AM, Thomas Schwinge wrote:
Hi!

On Mon, 27 Apr 2015 11:20:30 +0100, Richard Sandiford <richard.sandiford@arm.com> wrote:
This patch [...] by replacing most of genrecog [...]

OK to commit?

Is it a bug that I'm seeing these warnings only in the stage 1 build with
the bootstrap GCC 4.6 compiler, but not anymore later on?  (I have not
verified the C++ standard on the rules for Âcomparison between signed and
unsigned integer expressionsÂ.)

commit efef4f38205a13da90ca19b6eec1a6526756b433
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri May 8 10:55:19 2015 +0200

     genrecog: Address -Wsign-compare diagnostics.

         g++-4.6 [...] [...]/gcc/genrecog.c
         [...]/gcc/genrecog.c: In function 'state_size find_subroutines(routine_type, state*, vec<state*>&)':
         [...]/gcc/genrecog.c:3338:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         [...]/gcc/genrecog.c:3347:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         [...]/gcc/genrecog.c:3359:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         [...]/gcc/genrecog.c:3365:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

         3305   state_size size;
              [...]
         3337           state_size to_size = find_subroutines (type, trans->to, procs);
         3338           if (d->next && to_size.depth > MAX_DEPTH)
              [...]
         3347               if (to_size.num_statements < MIN_NUM_STATEMENTS)
              [...]
         3359   if (size.num_statements > MAX_NUM_STATEMENTS)
              [...]
         3365              && size.num_statements > MAX_NUM_STATEMENTS)

          175 static const int MAX_DEPTH = 6;
              [...]
          179 static const int MIN_NUM_STATEMENTS = 5;
              [...]
          185 static const int MAX_NUM_STATEMENTS = 200;
              [...]
         3258 struct state_size
         3259 {
              [...]
         3261   unsigned int num_statements;
              [...]
         3265   unsigned int depth;
         3266 };

     	gcc/
     	* genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
     	Change to unsigned int.
---
  gcc/genrecog.c |    6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
OK with a ChangeLog and the usual testing. Or you can verify the output of genrecog doesn't change before/after if you don't want to go through the full bootstrap.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]