Module Name:    src
Committed By:   joerg
Date:           Sat Sep 12 19:05:11 UTC 2015

Modified Files:
        src/gnu/dist/grep/src: grep.c

Log Message:
Avoid TYPE_MAXIMUM, it depends on undefined behavior.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/gnu/dist/grep/src/grep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/gnu/dist/grep/src/grep.c
diff -u src/gnu/dist/grep/src/grep.c:1.15 src/gnu/dist/grep/src/grep.c:1.16
--- src/gnu/dist/grep/src/grep.c:1.15	Thu Jun 12 07:42:46 2014
+++ src/gnu/dist/grep/src/grep.c	Sat Sep 12 19:05:11 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: grep.c,v 1.15 2014/06/12 07:42:46 dholland Exp $	*/
+/*	$NetBSD: grep.c,v 1.16 2015/09/12 19:05:11 joerg Exp $	*/
 
 /* grep.c - main driver file for grep.
    Copyright 1992, 1997-1999, 2000 Free Software Foundation, Inc.
@@ -53,6 +53,13 @@ struct stats
   struct stat stat;
 };
 
+#include <limits.h>
+#define MAX_OFF_T (sizeof(off_t) == sizeof(char) ? INT_MAX : \
+                   (sizeof(off_t) == sizeof(short) ? SHRT_MAX : \
+                    (sizeof(off_t) == sizeof(int) ? INT_MAX : \
+                     (sizeof(off_t) == sizeof(long) ? LONG_MAX : \
+                      (sizeof(off_t) == sizeof(long long) ? LLONG_MAX : INTMAX_MAX)))))
+
 /* base of chain of stat buffers, used to detect directory loops */
 static struct stats stats_base;
 
@@ -1341,7 +1348,7 @@ main (int argc, char **argv)
   eolbyte = '\n';
   filename_mask = ~0;
 
-  max_count = TYPE_MAXIMUM (off_t);
+  max_count = MAX_OFF_T;
 
   /* The value -1 means to use DEFAULT_CONTEXT. */
   out_after = out_before = -1;
@@ -1516,7 +1523,7 @@ main (int argc, char **argv)
 		break;
 	      /* Fall through.  */
 	    case LONGINT_OVERFLOW:
-	      max_count = TYPE_MAXIMUM (off_t);
+	      max_count = MAX_OFF_T;
 	      break;
 
 	    default:

Reply via email to