genrecog: Address -Wsign-compare diagnostics (was: Mostly rewrite genrecog)
Thomas Schwinge
thomas@codesourcery.com
Fri May 8 09:10:00 GMT 2015
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(-)
diff --git gcc/genrecog.c gcc/genrecog.c
index 73e7995..653f753 100644
--- gcc/genrecog.c
+++ gcc/genrecog.c
@@ -172,17 +172,17 @@ static const bool force_unique_params_p = true;
/* The maximum (approximate) depth of block nesting that an individual
routine or subroutine should have. This limit is about keeping the
output readable rather than reducing compile time. */
-static const int MAX_DEPTH = 6;
+static const unsigned int MAX_DEPTH = 6;
/* The minimum number of pseudo-statements that a state must have before
we split it out into a subroutine. */
-static const int MIN_NUM_STATEMENTS = 5;
+static const unsigned int MIN_NUM_STATEMENTS = 5;
/* The number of pseudo-statements a state can have before we consider
splitting out substates into subroutines. This limit is about avoiding
compile-time problems with very big functions (and also about keeping
functions within --param optimization limits, etc.). */
-static const int MAX_NUM_STATEMENTS = 200;
+static const unsigned int MAX_NUM_STATEMENTS = 200;
/* The minimum number of pseudo-statements that can be used in a pattern
routine. */
Grüße,
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 472 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150508/6c44b53b/attachment.sig>
More information about the Gcc-patches
mailing list