m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU M4 source repository branch, branch-1.4, updated. v1.4.16-16-g


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, branch-1.4, updated. v1.4.16-16-g3b69f39
Date: Tue, 04 Sep 2012 23:10:29 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=3b69f39916d13ea86eabb4855db0b6d0ed715ae8

The branch, branch-1.4 has been updated
       via  3b69f39916d13ea86eabb4855db0b6d0ed715ae8 (commit)
       via  47c48ceec8a65b320d2b692ba8fd652c70107f3b (commit)
       via  88944db5b65c55f870c9825417eeae404b532e00 (commit)
       via  37ea0cb9079af49745c8fddb6af6f72e6ccde601 (commit)
       via  5938a720e89dc50a34051a4fb08908d58509ff7f (commit)
       via  112949b5c57bcdd1c26e636040601b3e6f31b8a0 (commit)
       via  e30a08ab9840091a497026597ae33c4fd2c06122 (commit)
      from  a0496f2a324727997fb35a40e6177d6c82bc6d2a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3b69f39916d13ea86eabb4855db0b6d0ed715ae8
Author: Eric Blake <address@hidden>
Date:   Tue Sep 4 16:31:23 2012 -0600

    maint: merge gitignore files
    
    Now that we aren't mirroring .cvsignore files off of the
    .gitignore files, we don't need to maintain a hierarchy.
    
    * build-aux/.gitignore: Delete.
    * checks/.gitignore: Likewise.
    * doc/.gitignore: Likewise.
    * examples/.gitignore: Likewise.
    * src/.gitignore: Likewise.
    * .gitignore: Cover rules from deleted files.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 47c48ceec8a65b320d2b692ba8fd652c70107f3b
Author: Eric Blake <address@hidden>
Date:   Tue Sep 4 16:18:59 2012 -0600

    maint: drop CVS cruft
    
    These days, no one is complaining about using git as the primary
    interface.  Anyone still using CVS can maintain their own ignore files.
    
    * .cvsignore: Remove.
    * build-aux/.cvsignore: Likewise.
    * checks/.cvsignore: Likewise.
    * doc/.cvsignore: Likewise.
    * examples/.cvsignore: Likewise.
    * src/.cvsignore: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 88944db5b65c55f870c9825417eeae404b532e00
Author: Eric Blake <address@hidden>
Date:   Sat Sep 1 12:35:00 2012 -0600

    build: add more compiler checking
    
    Enable a bit more gcc warning coverage.
    
    * configure.ac (nw): Turn on some warnings that no longer trigger
    a gcc warning, or where we reduce the scope of unwarned code.
    * src/m4.h (progname): Drop redundant declaration.
    * src/builtin.c (includes): Use header for program_name.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 37ea0cb9079af49745c8fddb6af6f72e6ccde601
Author: Eric Blake <address@hidden>
Date:   Sat Sep 1 11:05:43 2012 -0700

    build: pick up latest gnulib fixes
    
    It's been quite a while (2393 commits).
    
    * gnulib: Update to latest.
    * m4/gnulib-cache.m4: Regenerate.
    * missing: Break symlink in order to work around automake version
    mismatch issue.
    * .gitignore: Update.
    * .cvsignore: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5938a720e89dc50a34051a4fb08908d58509ff7f
Author: Eric Blake <address@hidden>
Date:   Tue Sep 4 16:53:19 2012 -0600

    build: mark several pure functions
    
    Found by using gcc 4.7.0's -Wsuggest-attribute=pure.
    
    * src/m4.h (M4_GNUC_PURE): New macro.
    * src/m4.c (fault_handler): Mark pure.
    * src/builtin.c (find_builtin_by_addr, find_builtin_by_name):
    Likewise.
    * src/symtab.c (hash): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 112949b5c57bcdd1c26e636040601b3e6f31b8a0
Author: Eric Blake <address@hidden>
Date:   Sat Sep 1 11:02:31 2012 -0700

    build: silence gcc warning
    
    Our next gnulib update will automatically turn on -Wformat=2, which
    overrides our attempt to avoid -Wformat-nonliteral.  But for newer
    gcc, we don't need to blindly ignore the warning; instead, we can
    target just the audited code while leaving the warning to apply to
    the rest of the code.  And for older gcc, we just don't use the
    warning (that is, warnings are a moving target, and it is fine if
    we only target newer gcc for full warnings).
    
    * configure.ac (M4_cv_gcc_pragma_push_works): New test.
    (-Wformat-nonliteral): Disable for older gcc.
    * src/format.c (expand_format): Mark our only uses of nonliteral
    format as being safe.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e30a08ab9840091a497026597ae33c4fd2c06122
Author: Eric Blake <address@hidden>
Date:   Sat Sep 1 10:46:38 2012 -0700

    doc: fix misuse of @xref
    
    Texinfo states that @xref must start a sentence.
    
    * doc/m4.texinfo (Inhibiting Invocation): Reword.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 .cvsignore           |   31 -------------------------------
 .gitignore           |   28 +++++++++++++++++++++++++++-
 ChangeLog            |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 build-aux/.cvsignore |   13 -------------
 build-aux/.gitignore |   13 -------------
 checks/.cvsignore    |    3 ---
 checks/.gitignore    |    3 ---
 configure.ac         |   31 ++++++++++++++++++++++++-------
 doc/.cvsignore       |   15 ---------------
 doc/.gitignore       |   15 ---------------
 doc/m4.texinfo       |    2 +-
 examples/.cvsignore  |    2 --
 examples/.gitignore  |    2 --
 gnulib               |    2 +-
 m4/gnulib-cache.m4   |   25 +++++++++++++++++++------
 src/.cvsignore       |    6 ------
 src/.gitignore       |    6 ------
 src/builtin.c        |    5 +++--
 src/format.c         |    9 +++++++++
 src/m4.c             |    2 +-
 src/m4.h             |    2 +-
 src/symtab.c         |    2 +-
 22 files changed, 137 insertions(+), 130 deletions(-)
 delete mode 100644 .cvsignore
 delete mode 100644 build-aux/.cvsignore
 delete mode 100644 build-aux/.gitignore
 delete mode 100644 checks/.cvsignore
 delete mode 100644 checks/.gitignore
 delete mode 100644 doc/.cvsignore
 delete mode 100644 doc/.gitignore
 delete mode 100644 examples/.cvsignore
 delete mode 100644 examples/.gitignore
 delete mode 100644 src/.cvsignore
 delete mode 100644 src/.gitignore

diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 1e719de..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,31 +0,0 @@
-*.tar.bz2
-*.tar.gz
-.tarball-version
-.version
-aclocal.m4
-autom4te.cache
-config.cache
-config.guess
-config.h
-config.log
-config.status
-config.sub
-config-h.in
-configure
-configure.lineno
-depcomp
-gendocs.sh
-GNUmakefile
-gnupload
-install-sh
-lib
-link-warning.h
-m4-*
-Makefile.in
-Makefile
-missing
-stamp-h
-stamp-h1
-stamp-h.in
-tests
-maint.mk
diff --git a/.gitignore b/.gitignore
index 0aac84c..a336b02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,26 @@
 *~
 *.bak
+*.exe
+*.o
 *.orig
 *.rej
 *.tar.bz2
 *.tar.gz
+.deps
 .tarball-version
 .version
 aclocal.m4
 autom4te.cache
-/build-aux/missing
+/build-aux/*
+!/build-aux/compile
+!/build-aux/config.guess
+!/build-aux/config.sub
+!/build-aux/depcomp
+!/build-aux/install-sh
+!/build-aux/mdate-sh
+!/build-aux/texinfo.tex
+/checks/[0-9][0-9][0-9].*
+/checks/stamp-checks
 config.cache
 /config.guess
 config.h
@@ -20,6 +32,19 @@ configure
 configure.lineno
 CVS
 /depcomp
+/doc/fdl-1.3.texi
+/doc/gendocs_template
+/doc/gpl-3.0.texi
+/doc/m4.1
+/doc/m4.??
+/doc/m4.???
+/doc/m4.html
+/doc/m4.info*
+/doc/manual
+/doc/mdate-sh
+/doc/stamp-vti
+/doc/texinfo.tex
+/doc/version.texi
 gendocs.sh
 GNUmakefile
 gnupload
@@ -32,6 +57,7 @@ m4-*
 Makefile.in
 Makefile
 /missing
+/src/m4
 stamp-h
 stamp-h1
 stamp-h.in
diff --git a/ChangeLog b/ChangeLog
index 631798d..c726d5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,53 @@
+2012-09-04  Eric Blake  <address@hidden>
+
+       maint: merge gitignore files
+       * build-aux/.gitignore: Delete.
+       * checks/.gitignore: Likewise.
+       * doc/.gitignore: Likewise.
+       * examples/.gitignore: Likewise.
+       * src/.gitignore: Likewise.
+       * .gitignore: Cover rules from deleted files.
+
+       maint: drop CVS cruft
+       * .cvsignore: Remove.
+       * build-aux/.cvsignore: Likewise.
+       * checks/.cvsignore: Likewise.
+       * doc/.cvsignore: Likewise.
+       * examples/.cvsignore: Likewise.
+       * src/.cvsignore: Likewise.
+
+       build: add more compiler checking
+       * configure.ac (nw): Turn on some warnings that no longer trigger
+       a gcc warning, or where we reduce the scope of unwarned code.
+       * src/m4.h (progname): Drop redundant declaration.
+       * src/builtin.c (includes): Use header for program_name.
+
+       build: pick up latest gnulib fixes
+       * gnulib: Update to latest.
+       * m4/gnulib-cache.m4: Regenerate.
+       * missing: Break symlink in order to work around automake version
+       mismatch issue.
+       * .gitignore: Update.
+       * .cvsignore: Likewise.
+
+       build: mark several pure functions
+       * src/m4.h (M4_GNUC_PURE): New macro.
+       * src/m4.c (fault_handler): Mark pure.
+       * src/builtin.c (find_builtin_by_addr, find_builtin_by_name):
+       Likewise.
+       * src/symtab.c (hash): Likewise.
+
+2012-09-01  Eric Blake  <address@hidden>
+
+       build: silence gcc warning
+       * configure.ac (M4_cv_gcc_pragma_push_works): New test.
+       (-Wformat-nonliteral): Disable for older gcc.
+       * src/format.c (expand_format): Mark our only uses of nonliteral
+       format as being safe.
+
+       doc: fix misuse of @xref
+       * doc/m4.texinfo (Inhibiting Invocation): Reword.
+
 2012-07-21  Eric Blake  <address@hidden>
 
        bootstrap: avoid undefined variables
diff --git a/build-aux/.cvsignore b/build-aux/.cvsignore
deleted file mode 100644
index e44a555..0000000
--- a/build-aux/.cvsignore
+++ /dev/null
@@ -1,13 +0,0 @@
-announce-gen
-arg-nonnull.h
-c++defs.h
-config.rpath
-gendocs.sh
-git-version-gen
-gnu-web-doc-update
-gnupload
-link-warning.h
-update-copyright
-useless-if-before-free
-vc-list-files
-warn-on-use.h
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
deleted file mode 100644
index 7144d03..0000000
--- a/build-aux/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-/announce-gen
-/arg-nonnull.h
-/c++defs.h
-/config.rpath
-/gendocs.sh
-/git-version-gen
-/gnu-web-doc-update
-/gnupload
-/link-warning.h
-/update-copyright
-/useless-if-before-free
-/vc-list-files
-/warn-on-use.h
diff --git a/checks/.cvsignore b/checks/.cvsignore
deleted file mode 100644
index cfdeddf..0000000
--- a/checks/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-[0-9][0-9][0-9].*
-Makefile
-stamp-checks
diff --git a/checks/.gitignore b/checks/.gitignore
deleted file mode 100644
index cfdeddf..0000000
--- a/checks/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-[0-9][0-9][0-9].*
-Makefile
-stamp-checks
diff --git a/configure.ac b/configure.ac
index 8eecef3..6886273 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,19 +57,30 @@ if test "$gl_gcc_warnings" = yes; then
   gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
   AC_SUBST([WERROR_CFLAGS])
 
+  # We use '#pragma GCC diagnostic push' to silence some
+  # warnings, but older gcc doesn't support this.
+  AC_CACHE_CHECK([whether pragma GCC diagnostic push works],
+    [M4_cv_gcc_pragma_push_works], [
+    save_CFLAGS=$CFLAGS
+    CFLAGS='-Wunknown-pragmas -Werror'
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+      #pragma GCC diagnostic push
+      #pragma GCC diagnostic pop
+    ]])],
+    [M4_cv_gcc_pragma_push_works=yes],
+    [M4_cv_gcc_pragma_push_works=no])
+    CFLAGS=$save_CFLAGS])
+
   nw=
-  nw="$nw -Waggregate-return"       # C90 is anachronistic
+  nw="$nw -Waggregate-return"       # K&R is anachronistic
+  nw="$nw -Wtraditional-conversion" # K&R is anachronistic
+  nw="$nw -Wundef"                  # K&R is anachronistic
+  nw="$nw -Wtraditional"            # K&R is anachronistic
   nw="$nw -Wlong-long"              # C90 is anachronistic
-  nw="$nw -Wundef"                  # Warns on '#if GNULIB_FOO' etc in gnulib
-  nw="$nw -Wtraditional"            # Warns on #elif which we use often
   nw="$nw -Wsystem-headers"         # Don't let system headers trigger warnings
   nw="$nw -Wpadded"                 # Our structs are not packed
-  nw="$nw -Wredundant-decls"        # Gnulib has multiple decls
-  nw="$nw -Wformat-nonliteral"      # Needed in builtin.c
-  nw="$nw -Wunreachable-code"       # Needed in output.c
   nw="$nw -Wconversion"             # Too many warnings for now
   nw="$nw -Wsign-conversion"        # Too many warnings for now
-  nw="$nw -Wtraditional-conversion" # Too many warnings for now
   nw="$nw -Wcast-qual"              # Too many warnings for now
   nw="$nw -Wswitch-enum"            # Too many warnings for now
   # This, $nw, is the list of warnings we disable.
@@ -80,6 +91,12 @@ if test "$gl_gcc_warnings" = yes; then
     gl_WARN_ADD([$w])
   done
 
+  # Gnulib turns on -Wformat=2, which implies -Wformat-nonliteral, but
+  # we temporarily override it in format.c if possible.
+  if test $M4_cv_gcc_pragma_push_works = no; then
+    gl_WARN_ADD([-Wno-format-nonliteral])
+  fi
+
   gl_WARN_ADD([-fdiagnostics-show-option])
   gl_WARN_ADD([-funit-at-a-time])
 
diff --git a/doc/.cvsignore b/doc/.cvsignore
deleted file mode 100644
index 81f5a1e..0000000
--- a/doc/.cvsignore
+++ /dev/null
@@ -1,15 +0,0 @@
-fdl-1.3.texi
-gendocs_template
-gpl-3.0.texi
-m4.1
-m4.??
-m4.???
-m4.html
-m4.info*
-Makefile.in
-Makefile
-manual
-mdate-sh
-stamp-vti
-texinfo.tex
-version.texi
diff --git a/doc/.gitignore b/doc/.gitignore
deleted file mode 100644
index 81f5a1e..0000000
--- a/doc/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-fdl-1.3.texi
-gendocs_template
-gpl-3.0.texi
-m4.1
-m4.??
-m4.???
-m4.html
-m4.info*
-Makefile.in
-Makefile
-manual
-mdate-sh
-stamp-vti
-texinfo.tex
-version.texi
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index a1ead11..f29d541 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -1428,7 +1428,7 @@ m4_eval(`1')
 @end example
 
 Another alternative is to redefine problematic macros to a name less
-likely to cause conflicts, @xref{Definitions}.
+likely to cause conflicts, using @ref{Definitions}.
 
 If your version of GNU @code{m4} has the @code{changeword} feature
 compiled in, it offers far more flexibility in specifying the
diff --git a/examples/.cvsignore b/examples/.cvsignore
deleted file mode 100644
index 3dda729..0000000
--- a/examples/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile.in
-Makefile
diff --git a/examples/.gitignore b/examples/.gitignore
deleted file mode 100644
index 3dda729..0000000
--- a/examples/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile.in
-Makefile
diff --git a/gnulib b/gnulib
index bcbcf0c..3a9002d 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit bcbcf0c59cec0e91db318eccdc564852bafa3c67
+Subproject commit 3a9002d3cc63da7110f133b1040d2d2b0aad8305
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index 6da839f..ff9c510 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -1,9 +1,21 @@
-# Copyright (C) 2002-2011 Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
@@ -15,7 +27,7 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --local-dir=local --lib=libm4 
--source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests 
--aux-dir=build-aux --with-tests --with-c++-tests --avoid=lock-tests 
--avoid=tls-tests --makefile-name=gnulib.mk --no-libtool --macro-prefix=M4 
announce-gen assert autobuild avltree-oset binary-io c-stack clean-temp cloexec 
close-stream closein config-h dirname error execute fclose fdl-1.3 fflush 
filenamecat fopen fopen-safer fseeko gendocs getopt-gnu git-version-gen 
gnu-web-doc-update gnumakefile gnupload gpl-3.0 ignore-value intprops 
maintainer-makefile manywarnings memchr2 mkstemp obstack progname regex rename 
sigaction sigpipe spawn-pipe stdbool stdint stdlib-safer strsignal strstr 
strtod unlocked-io update-copyright vc-list-files verror version-etc 
version-etc-fsf wait-process xalloc xoset xprintf xvasprintf-posix
+#   gnulib-tool --import --dir=. --local-dir=local --lib=libm4 
--source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests 
--aux-dir=build-aux --with-tests --with-c++-tests --avoid=lock-tests 
--avoid=tls-tests --makefile-name=gnulib.mk --no-conditional-dependencies 
--no-libtool --macro-prefix=M4 announce-gen assert autobuild avltree-oset 
binary-io c-stack clean-temp cloexec close-stream closein config-h dirname 
error execute fclose fdl-1.3 fflush filenamecat fopen fopen-safer fseeko 
gendocs getopt-gnu git-version-gen gnu-web-doc-update gnumakefile gnupload 
gpl-3.0 ignore-value intprops maintainer-makefile manywarnings memchr2 mkstemp 
obstack progname regex rename sigaction sigpipe spawn-pipe stdbool stdint 
stdlib-safer strsignal strstr strtod unlocked-io update-copyright vc-list-files 
verror version-etc version-etc-fsf wait-process xalloc xoset xprintf 
xvasprintf-posix
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([local])
@@ -91,3 +103,4 @@ gl_LIB([libm4])
 gl_MAKEFILE_NAME([gnulib.mk])
 gl_MACRO_PREFIX([M4])
 gl_PO_DOMAIN([])
+gl_WITNESS_C_MACRO([])
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644
index 9b593c0..0000000
--- a/src/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.deps
-*.o
-Makefile.in
-Makefile
-m4
-m4.exe
diff --git a/src/.gitignore b/src/.gitignore
deleted file mode 100644
index 9b593c0..0000000
--- a/src/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.deps
-*.o
-Makefile.in
-Makefile
-m4
-m4.exe
diff --git a/src/builtin.c b/src/builtin.c
index d8c9bd5..b7e4e11 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -26,6 +26,7 @@
 
 #include "execute.h"
 #include "memchr2.h"
+#include "progname.h"
 #include "regex.h"
 #include "spawn-pipe.h"
 #include "wait-process.h"
@@ -173,7 +174,7 @@ static predefined const predefined_tab[] =
 | Find the builtin, which lives on ADDR.  |
 `----------------------------------------*/
 
-const builtin *
+const builtin * M4_GNUC_PURE
 find_builtin_by_addr (builtin_func *func)
 {
   const builtin *bp;
@@ -191,7 +192,7 @@ find_builtin_by_addr (builtin_func *func)
 | placeholder builtin.                                      |
 `----------------------------------------------------------*/
 
-const builtin *
+const builtin * M4_GNUC_PURE
 find_builtin_by_name (const char *name)
 {
   const builtin *bp;
diff --git a/src/format.c b/src/format.c
index 4b7f022..940021a 100644
--- a/src/format.c
+++ b/src/format.c
@@ -348,6 +348,12 @@ expand_format (struct obstack *obs, int argc, token_data 
**argv)
       *p++ = c;
       *p = '\0';
 
+      /* Our constructed format string in fstart is safe.  */
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#endif
+
       switch (datatype)
         {
         case CHAR:
@@ -373,6 +379,9 @@ expand_format (struct obstack *obs, int argc, token_data 
**argv)
         default:
           abort();
         }
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# pragma GCC diagnostic pop
+#endif
 
       /* NULL was returned on failure, such as invalid format string.  For
          now, just silently ignore that bad specifier.  */
diff --git a/src/m4.c b/src/m4.c
index d4c2681..3666a65 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -140,7 +140,7 @@ static const char * volatile signal_message[NSIG];
    must be aysnc-signal safe, since it is executed as a signal
    handler.  If SIGNO is zero, this represents a stack overflow; in
    that case, we return to allow c_stack_action to handle things.  */
-static void
+static void M4_GNUC_PURE
 fault_handler (int signo)
 {
   if (signo)
diff --git a/src/m4.h b/src/m4.h
index a8d96ea..8ddb9da 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -118,6 +118,7 @@ typedef unsigned int bool_bitfield;
 #define M4_GNUC_PRINTF(fmt, arg)                        \
   M4_GNUC_ATTRIBUTE ((__format__ (__printf__, fmt, arg)))
 #define M4_GNUC_NORETURN        M4_GNUC_ATTRIBUTE ((__noreturn__))
+#define M4_GNUC_PURE            M4_GNUC_ATTRIBUTE ((__pure__))
 
 /* File: m4.c  --- global definitions.  */
 
@@ -137,7 +138,6 @@ extern const char *user_word_regexp;    /* -W */
 
 /* Error handling.  */
 extern int retcode;
-extern const char *program_name;
 
 void m4_error (int, int, const char *, ...) M4_GNUC_PRINTF(3, 4);
 void m4_error_at_line (int, int, const char *, int,
diff --git a/src/symtab.c b/src/symtab.c
index eeec2cf..ba2afe3 100644
--- a/src/symtab.c
+++ b/src/symtab.c
@@ -120,7 +120,7 @@ symtab_init (void)
 | Return a hashvalue for a string, from GNU-emacs.  |
 `--------------------------------------------------*/
 
-static size_t
+static size_t M4_GNUC_PURE
 hash (const char *s)
 {
   register size_t val = 0;


hooks/post-receive
-- 
GNU M4 source repository



reply via email to

[Prev in Thread] Current Thread [Next in Thread]