builtins.c (c_strlen): Treat an offset too large for a HOST_WIDE_INT as out of range.
authorMatt Kraai <kraai@alumni.carnegiemellon.edu>
Tue, 11 Sep 2001 17:10:15 +0000 (17:10 +0000)
committerMatt Kraai <kraai@gcc.gnu.org>
Tue, 11 Sep 2001 17:10:15 +0000 (17:10 +0000)
* builtins.c (c_strlen): Treat an offset too large for a
HOST_WIDE_INT as out of range.

From-SVN: r45550

gcc/ChangeLog
gcc/builtins.c

index 74f3fe3..25bf3ba 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
+
+       * builtins.c (c_strlen): Treat an offset too large for a
+       HOST_WIDE_INT as out of range.
+
 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
index 7cd7e89..025dd2c 100644 (file)
@@ -265,8 +265,10 @@ c_strlen (src)
 
   /* We have a known offset into the string.  Start searching there for
      a null character if we can represent it as a single HOST_WIDE_INT.  */
-  if (offset_node == 0 || ! host_integerp (offset_node, 0))
+  if (offset_node == 0)
     offset = 0;
+  else if (! host_integerp (offset_node, 0))
+    offset = -1;
   else
     offset = tree_low_cst (offset_node, 0);