]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix compilation with --enable-gcc-warnings and -O1
authorDmitry Antipov <dmantipov@yandex.ru>
Wed, 4 Jul 2012 08:07:26 +0000 (12:07 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Wed, 4 Jul 2012 08:07:26 +0000 (12:07 +0400)
optimization level.
* configure.in: If --enable-gcc-warnings, disable
-Wunsafe-loop-optimizations for -O1 optimization level.
* src/doprnt.c (doprnt): Change type of tem to int, initialize
to avoid compiler warning.  Add eassert.
* src/search.c (simple_search): Initialize match_byte to avoid
compiler warning.  Add eassert.

ChangeLog
configure.in
src/ChangeLog
src/doprnt.c
src/search.c

index db3dc32410dbb3948defa9eb405b4f31fc9844a9..95f0f0c1a20e9cb2fd59bb10b9c4c7f72906becf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * configure.in: If --enable-gcc-warnings, disable
+       -Wunsafe-loop-optimizations for -O1 optimization level.
+
 2012-06-30  Glenn Morris  <rgm@gnu.org>
 
        * configure.in (standardlisppath): New output variable.
index 20b4cf2d5938135e0fe0d7d7d152fe397ef7a89d..dde8bcca855d529f6652a35183e5d49fee094b49 100644 (file)
@@ -681,6 +681,12 @@ else
   nw="$nw -Wsuggest-attribute=const"
   nw="$nw -Wsuggest-attribute=pure"
 
+  # Some loops can't be optimized with -O1,
+  # so remove -Wunsafe-loop-optimizations.
+  if echo "$CFLAGS" | $EGREP 'O1' 1>/dev/null; then
+    nw="$nw -Wunsafe-loop-optimizations"
+  fi
+
   gl_MANYWARN_ALL_GCC([ws])
   gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
   for w in $ws; do
index e335c8de8d447dcf27c2cd350301662540c37aba..065ff35ce778fe27fb989d1ed6fc22e42cccad3b 100644 (file)
@@ -1,3 +1,12 @@
+2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix compilation with --enable-gcc-warnings and -O1
+       optimization level.
+       * doprnt.c (doprnt): Change type of tem to int, initialize
+       to avoid compiler warning.  Add eassert.
+       * search.c (simple_search): Initialize match_byte to avoid
+       compiler warning.  Add eassert.
+
 2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        Avoid weird behavior with large horizontal scrolls.
index 07bbcff7081e7c7274c6a2ecae97bd721b6e7a38..707dd0648b57b787cc75f73327ae23d86a8dd6ef 100644 (file)
@@ -150,7 +150,7 @@ doprnt (char *buffer, ptrdiff_t bufsize, const char *format,
   /* Buffer we have got with malloc.  */
   char *big_buffer = NULL;
 
-  register size_t tem;
+  register int tem = -1;
   char *string;
   char fixed_buffer[20];       /* Default buffer for small formatting. */
   char *fmtcpy;
@@ -368,6 +368,7 @@ doprnt (char *buffer, ptrdiff_t bufsize, const char *format,
 
              /* Copy string into final output, truncating if no room.  */
            doit:
+             eassert (tem != -1);
              /* Coming here means STRING contains ASCII only.  */
              if (STRING_BYTES_BOUND < tem)
                error ("Format width or precision too large");
index 4912c0f23ec037107967b22410b0a7598dd2d534..11f51d87a7deacb0d5febe1d7066fff79581b881 100644 (file)
@@ -1451,7 +1451,7 @@ simple_search (EMACS_INT n, unsigned char *pat,
   int forward = n > 0;
   /* Number of buffer bytes matched.  Note that this may be different
      from len_byte in a multibyte buffer.  */
-  ptrdiff_t match_byte;
+  ptrdiff_t match_byte = PTRDIFF_MIN;
 
   if (lim > pos && multibyte)
     while (n > 0)
@@ -1622,6 +1622,7 @@ simple_search (EMACS_INT n, unsigned char *pat,
  stop:
   if (n == 0)
     {
+      eassert (match_byte != PTRDIFF_MIN);
       if (forward)
        set_search_regs ((multibyte ? pos_byte : pos) - match_byte, match_byte);
       else