From cf3e5186466c0c10bd0f0eb70cfb07cd94879ea3 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 26 Jun 2015 02:35:12 +0000 Subject: [PATCH] Cast return of strtol to unsigned int strtol returns long, which is compared against unsigned int. On 32-bit hosts, it leads to gcc/gentarget-def.c: In function void def_target_insn(const char*, const char*): gcc/gentarget-def.c:88:34: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] This patch casts return of strtol to unsigned int to avoid the error. * gentarget-def.c (def_target_insn): Cast return of strtol to unsigned int. From-SVN: r224993 --- gcc/ChangeLog | 5 +++++ gcc/gentarget-def.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 63b716b21b6..080aa39a03a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-06-25 H.J. Lu + + * gentarget-def.c (def_target_insn): Cast return of strtol to + unsigned int. + 2015-06-25 Andrew MacLeod * gimple.h (gimple_call_set_fn): Move inline function. diff --git a/gcc/gentarget-def.c b/gcc/gentarget-def.c index d4839e881d9..bca94804e18 100644 --- a/gcc/gentarget-def.c +++ b/gcc/gentarget-def.c @@ -85,7 +85,7 @@ def_target_insn (const char *name, const char *prototype) That doesn't contribute to the suffix, so skip ahead and process the following character. */ char *endptr; - if (strtol (p + 1, &endptr, 10) != opno + if ((unsigned int) strtol (p + 1, &endptr, 10) != opno || (*endptr != ',' && *endptr != ')')) { error ("invalid prototype for '%s'", name); -- 2.30.2