mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Merge remote-tracking branch 'origin/maint'
* origin/maint: maint: update gnu-web-doc-update. maint: post-release administrivia version 2.6 maint: prepare for release 2.6 maint: post-release administrivia version 2.5.91 maint: prepare NEWS. maint: fix spaces. tests: adjust to case where the C compiler is actually a C++ compiler tests: fix dependencies doc: fix Texinfo command maint: Valgrind on OS X. tests: be sure that backups are safe. maint: dead comment. tests: refactor for legibility. tests: refactor the bison invocations. maint: fix syntax-check ignore patterns. gnulib: update gnulib: update. gnulib: update Conflicts: build-aux/Makefile.am cfg.mk tests/Makefile.am
This commit is contained in:
@@ -20,6 +20,15 @@
|
||||
m4_version_prereq([2.58])
|
||||
|
||||
|
||||
# m4_null_if(VAL, IF-TRUE, IF-FALSE)
|
||||
# ----------------------------------
|
||||
# If VAL evaluates to empty or 0, run IF-TRUE, otherwise IF-FALSE.
|
||||
m4_define([m4_null_if],
|
||||
[m4_case(m4_quote($1),
|
||||
[0], [$2],
|
||||
[], [$2],
|
||||
[$3])])
|
||||
|
||||
## ------------- ##
|
||||
## Basic tests. ##
|
||||
## ------------- ##
|
||||
@@ -44,6 +53,8 @@ m4_divert_text([PREPARE_TESTS],
|
||||
{
|
||||
for at_save_file in stderr experr expout
|
||||
do
|
||||
test ! -f at-bison-check-$at_save_file.bak ||
|
||||
as_fn_error 1 "fatal error: back-up on top of a back-up"
|
||||
test ! -f $at_save_file || mv $at_save_file at-bison-check-$at_save_file.bak
|
||||
done
|
||||
}
|
||||
@@ -407,6 +418,9 @@ void
|
||||
|
||||
# AT_BISON_CHECK(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
|
||||
# -------------------------------------------------
|
||||
# High-level routine that may call bison several times, under different
|
||||
# conditions.
|
||||
#
|
||||
# Check Bison by invoking `bison BISON_ARGS'. BISON_ARGS should not contain
|
||||
# shell constructs (such as redirection or pipes) that would prevent
|
||||
# appending additional command-line arguments for bison. OTHER_AT_CHECK_ARGS
|
||||
@@ -427,24 +441,30 @@ void
|
||||
#
|
||||
# 4. If stderr contains a warning, -Wnone and --warnings=none suppress it.
|
||||
m4_define([AT_BISON_CHECK],
|
||||
[m4_if(m4_quote($2), [0], [AT_BISON_CHECK_XML($@)],
|
||||
m4_quote($2), [], [AT_BISON_CHECK_XML($@)])
|
||||
[m4_null_if([$2], [AT_BISON_CHECK_XML($@)])
|
||||
AT_BISON_CHECK_NO_XML($@)])
|
||||
|
||||
m4_define([AT_BISON_WERROR_MSG],
|
||||
[[bison: warnings being treated as errors]])
|
||||
|
||||
# AT_BISON_CHECK_NO_XML(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
|
||||
# --------------------------------------------------------
|
||||
# Same as AT_BISON_CHECK except don't perform XML/XSLT checks. This is useful
|
||||
# when a tortured grammar's XML is known to be too large for xsltproc to
|
||||
# handle.
|
||||
m4_define([AT_BISON_CHECK_NO_XML],
|
||||
[AT_CHECK(m4_if(m4_quote($2), [0], [], m4_quote($2), [], [],
|
||||
[AT_QUELL_VALGRIND ])[[bison ]]$@)
|
||||
m4_if(m4_bregexp([$4], [: warning: ]), [-1], [],
|
||||
m4_quote(m4_if(m4_quote($2), [], [0], [$2])), [0], [[
|
||||
# Defining POSIXLY_CORRECT causes bison to complain if options
|
||||
|
||||
# AT_BISON_CHECK_(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
|
||||
# --------------------------------------------------
|
||||
# Low-level macro to run bison once.
|
||||
m4_define([AT_BISON_CHECK_],
|
||||
[AT_CHECK(AT_QUELL_VALGRIND[[ bison ]]$@)])
|
||||
|
||||
|
||||
# AT_BISON_CHECK_WARNINGS(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
|
||||
# ----------------------------------------------------------
|
||||
# Check that warnings (if some are expected) are correctly
|
||||
# turned into errors with -Werror, etc.
|
||||
m4_define([AT_BISON_CHECK_WARNINGS],
|
||||
[m4_if(m4_bregexp([$4], [: warning: ]), [-1], [],
|
||||
[m4_null_if([$2], [AT_BISON_CHECK_WARNINGS_($@)])])])
|
||||
|
||||
m4_define([AT_BISON_CHECK_WARNINGS_],
|
||||
[[# Defining POSIXLY_CORRECT causes bison to complain if options
|
||||
# are added after the grammar file name, so skip these checks
|
||||
# in that case.
|
||||
if test -z "${POSIXLY_CORRECT+set}"; then
|
||||
@@ -454,8 +474,7 @@ m4_if(m4_bregexp([$4], [: warning: ]), [-1], [],
|
||||
]AT_DATA([expout], [$3])[
|
||||
|
||||
# Run with -Werror.
|
||||
]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ -Werror]],
|
||||
[[1]], [expout], [stderr])[
|
||||
]AT_BISON_CHECK_([$1[ -Werror]], [[1]], [expout], [stderr])[
|
||||
|
||||
# Build expected stderr up to and including the "warnings being
|
||||
# treated as errors" message.
|
||||
@@ -489,22 +508,27 @@ m4_if(m4_bregexp([$4], [: warning: ]), [-1], [],
|
||||
|
||||
# Now check --warnings=error.
|
||||
cp stderr experr
|
||||
]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ --warnings=error]],
|
||||
[[1]], [expout], [experr])[
|
||||
]AT_BISON_CHECK_([$1[ --warnings=error]], [[1]], [expout], [experr])[
|
||||
|
||||
# Now check -Wnone and --warnings=none by making sure that
|
||||
# -Werror doesn't change the exit status when -Wnone or
|
||||
# --warnings=none is specified.
|
||||
]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ -Wnone -Werror]],
|
||||
[[0]], [expout])[
|
||||
]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ --warnings=none \
|
||||
-Werror]], [[0]], [expout])[
|
||||
]AT_BISON_CHECK_([$1[ -Wnone -Werror]], [[0]], [expout])[
|
||||
]AT_BISON_CHECK_([$1[ --warnings=none -Werror]], [[0]], [expout])[
|
||||
|
||||
]AT_RESTORE_SPECIAL_FILES[
|
||||
fi
|
||||
]])
|
||||
fi]dnl
|
||||
])
|
||||
|
||||
# AT_BISON_CHECK_NO_XML(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
|
||||
# --------------------------------------------------------
|
||||
# Same as AT_BISON_CHECK except don't perform XML/XSLT checks. This is useful
|
||||
# when a tortured grammar's XML is known to be too large for xsltproc to
|
||||
# handle.
|
||||
m4_define([AT_BISON_CHECK_NO_XML],
|
||||
[AT_CHECK(m4_null_if([$2], [], [AT_QUELL_VALGRIND ])[[bison ]]$@)
|
||||
AT_BISON_CHECK_WARNINGS($@)])
|
||||
|
||||
# AT_BISON_CHECK_XML(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
|
||||
# -----------------------------------------------------
|
||||
# Run AT_BISON_CHECK's XML/XSLT checks if $BISON_TEST_XML=1 and $XSLTPROC is
|
||||
@@ -521,10 +545,10 @@ m4_define([AT_BISON_CHECK_XML],
|
||||
[--xml=[^][ ]*], [])])dnl
|
||||
# Don't combine these Bison invocations since we want to be sure that
|
||||
# --report=all isn't required to get the full XML file.
|
||||
AT_CHECK([[bison --report=all --report-file=xml-tests/test.output \
|
||||
AT_BISON_CHECK_([[--report=all --report-file=xml-tests/test.output \
|
||||
--graph=xml-tests/test.dot ]]AT_BISON_ARGS,
|
||||
[[0]], [ignore], [ignore])
|
||||
AT_CHECK([[bison --xml=xml-tests/test.xml ]]AT_BISON_ARGS,
|
||||
AT_BISON_CHECK_([[--xml=xml-tests/test.xml ]]AT_BISON_ARGS,
|
||||
[[0]], [ignore], [ignore])
|
||||
m4_popdef([AT_BISON_ARGS])dnl
|
||||
[cp xml-tests/test.output expout]
|
||||
@@ -553,6 +577,8 @@ m4_define([AT_BISON_CHECK_XML],
|
||||
m4_define([AT_QUELL_VALGRIND],
|
||||
[[[VALGRIND_OPTS="$VALGRIND_OPTS --leak-check=summary --show-reachable=no"; export VALGRIND_OPTS;]]])
|
||||
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Compiling C, C++ Files. ##
|
||||
## ------------------------ ##
|
||||
|
||||
Reference in New Issue
Block a user