changeset 12848:69c1f6834276

regcomp.c: avoid the sole warning from gcc's -Wtype-limits * lib/regcomp.c (TYPE_SIGNED): Define. (parse_dup_op): Use it to avoid the sole warning from -Wtype-limits.
author Jim Meyering <meyering@redhat.com>
date Wed, 03 Feb 2010 18:01:36 +0100
parents 64dad3a0ba71
children 4f2addafd34f
files ChangeLog lib/regcomp.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Feb 03 17:15:03 2010 +0100
+++ b/ChangeLog	Wed Feb 03 18:01:36 2010 +0100
@@ -1,5 +1,9 @@
 2010-02-03  Jim Meyering  <meyering@redhat.com>
 
+	regcomp.c: avoid the sole warning from gcc's -Wtype-limits
+	* lib/regcomp.c (TYPE_SIGNED): Define.
+	(parse_dup_op): Use it to avoid the sole warning from -Wtype-limits.
+
 	regcomp.c: avoid a new -Wshadow warning
 	* lib/regcomp.c (create_initial_state): Do not shadow local "err".
 
--- a/lib/regcomp.c	Wed Feb 03 17:15:03 2010 +0100
+++ b/lib/regcomp.c	Wed Feb 03 18:01:36 2010 +0100
@@ -2577,10 +2577,14 @@
   if (BE (tree == NULL, 0))
     goto parse_dup_op_espace;
 
+/* From gnulib's "intprops.h":
+   True if the arithmetic type T is signed.  */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
   /* This loop is actually executed only when end != REG_MISSING,
      to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?...  We have
      already created the start+1-th copy.  */
-  if ((Idx) -1 < 0 || end != REG_MISSING)
+  if (TYPE_SIGNED (Idx) || end != REG_MISSING)
     for (i = start + 2; i <= end; ++i)
       {
 	elem = duplicate_tree (elem, dfa);