]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR other/56245 (-fsanitize=address miscompiles GCC)
authorJakub Jelinek <jakub@redhat.com>
Sat, 9 Feb 2013 18:41:00 +0000 (19:41 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 9 Feb 2013 18:41:00 +0000 (19:41 +0100)
PR other/56245
* regex.c (PTR_INT_TYPE): Define.
(EXTEND_BUFFER): Change incr type from int to PTR_INT_TYPE.

From-SVN: r195918

libiberty/ChangeLog
libiberty/regex.c

index cbcd1e259488bdbbbd91a3f7c475e70ee5ba318d..d7f1fd021bfde7cb08b6fbf952a019c617c20458 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR other/56245
+       * regex.c (PTR_INT_TYPE): Define.
+       (EXTEND_BUFFER): Change incr type from int to PTR_INT_TYPE.
+
 2013-01-31  Kai Tietz  <ktietz@redhat.com>
 
        PR other/54620
index d65eedb16704313a58f293c0c9e00600e51a29a2..17091ce9569fdc991efb5f5c939bd56ac089ecf6 100644 (file)
@@ -4,7 +4,7 @@
    internationalization features.)
 
    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2005, 2010 Free Software Foundation, Inc.
+   2002, 2005, 2010, 2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 
 # if defined STDC_HEADERS && !defined emacs
 #  include <stddef.h>
+#  define PTR_INT_TYPE ptrdiff_t
 # else
 /* We need this for `regex.h', and perhaps for the Emacs include files.  */
 #  include <sys/types.h>
+#  define PTR_INT_TYPE long
 # endif
 
 # define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
@@ -2045,7 +2047,7 @@ static reg_errcode_t byte_compile_range (unsigned int range_start,
     /* How many characters the new buffer can have?  */                        \
     wchar_count = bufp->allocated / sizeof(UCHAR_T);                   \
     if (wchar_count == 0) wchar_count = 1;                             \
-    /* Truncate the buffer to CHAR_T align.  */                        \
+    /* Truncate the buffer to CHAR_T align.  */                                \
     bufp->allocated = wchar_count * sizeof(UCHAR_T);                   \
     RETALLOC (COMPILED_BUFFER_VAR, wchar_count, UCHAR_T);              \
     bufp->buffer = (char*)COMPILED_BUFFER_VAR;                         \
@@ -2054,7 +2056,7 @@ static reg_errcode_t byte_compile_range (unsigned int range_start,
     /* If the buffer moved, move all the pointers into it.  */         \
     if (old_buffer != COMPILED_BUFFER_VAR)                             \
       {                                                                        \
-       int incr = COMPILED_BUFFER_VAR - old_buffer;                    \
+       PTR_INT_TYPE incr = COMPILED_BUFFER_VAR - old_buffer;           \
        MOVE_BUFFER_POINTER (b);                                        \
        MOVE_BUFFER_POINTER (begalt);                                   \
        if (fixup_alt_jump)                                             \
@@ -2082,7 +2084,7 @@ static reg_errcode_t byte_compile_range (unsigned int range_start,
     /* If the buffer moved, move all the pointers into it.  */         \
     if (old_buffer != COMPILED_BUFFER_VAR)                             \
       {                                                                        \
-       int incr = COMPILED_BUFFER_VAR - old_buffer;                    \
+       PTR_INT_TYPE incr = COMPILED_BUFFER_VAR - old_buffer;           \
        MOVE_BUFFER_POINTER (b);                                        \
        MOVE_BUFFER_POINTER (begalt);                                   \
        if (fixup_alt_jump)                                             \