Cast return of strtol to unsigned int
authorH.J. Lu <hongjiu.lu@intel.com>
Fri, 26 Jun 2015 02:35:12 +0000 (02:35 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Fri, 26 Jun 2015 02:35:12 +0000 (19:35 -0700)
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
gcc/gentarget-def.c

index 63b716b21b6fd8a5781866a3d684ca0b5360fba9..080aa39a03a30d04fc0adbb7f5201b498b2ad672 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * gentarget-def.c (def_target_insn): Cast return of strtol to
+       unsigned int.
+
 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
 
        * gimple.h (gimple_call_set_fn): Move inline function.
index d4839e881d9c8ea156e739b6327eabe531e7806b..bca94804e1878d7bff0fd1eec2228601a26e62c0 100644 (file)
@@ -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);