mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
* src/files.h (parser_file_name, spec_verbose_file, spec_graph_file):
(spec_defines_file, dir_prefix): Now char *, not const char *,
since they are freed.
* src/files.c: Likewise.
(all_but_ext, all_but_tab_ext, src_extension, header_extension):
Likewise.
(tr): Now operates in-place. All uses changed.
(compute_exts_from_gf, compute_exts_from_src): Don't leak temporary
values.
(compute_file_name_parts, compute_output_file_names): Don't store
read-only data in variables that will be freed.
(compute_output_file_names): Free all_but_ext, all_but_tab_ext,
src_extension, and header_extension.
(output_file_names_free): New public function to free
spec_verbose_file, spec_graph_file, spec_defines_file,
parser_file_name, and dir_prefix.
* src/getargs.c (getargs): Don't store read-only data in variables that
will be freed.
* src/main.c (main): Invoke output_file_names_free, code_scanner_free
(which previously existed but was unused), and quotearg_free.
* src/muscle_tab.h (muscle_insert): value arg is now a `char const *'.
* src/muscle_tab.c: Likewise.
(muscle_entry): Make the value char const *,
and add a new storage member that is char * and can be freed.
(muscle_entry_free): New private function.
(muscle_init): Use it instead of free.
(muscle_insert, muscle_grow): Update and use new storage member.
(muscle_code_grow): Free the string passed to muscle_grow
since it's not needed anymore.
* src/parse-gram.y (%union): Make `chars' member a `char const *', and
add a new `char *code' member.
("{...}"): Declare semantic type as code.
* src/scan-code.h (translate_rule_action):
(translate_symbol_action, translate_code, translate_action): Return
`char const *' rather than `char *' since external code should not free
these strings.
* src/scan-code.l: Likewise.
* src/scan-gram.l (<SC_BRACED_CODE>): Use val->code for BRACED_CODE,
which is "{...}" in the parser.
* tests/Makefile.am (maintainer-check-valgrind): Set
VALGRIND_OPTS='--leak-check=full --show-reacheable=yes' before invoking
Valgrind.
* tests/calc.at (_AT_DATA_CALC_Y): fclose the FILE* so Valgrind doesn't
complain.
* tests/testsuite.at (AT_CHECK): Redefine so that running Bison and
expecting a non-zero exit status sets --leak-check=summary and
--show-reachable=no for Valgrind. Bison unabashedly leaks memory in
this case, and we don't want to hear about it.
96 lines
3.0 KiB
Makefile
96 lines
3.0 KiB
Makefile
## Process this file with automake to create Makefile.in.
|
|
|
|
## Makefile for Bison testsuite.
|
|
|
|
## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
|
|
## Foundation, Inc.
|
|
|
|
## This program 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 2, or (at your option)
|
|
## any later version.
|
|
|
|
## This program 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 program; if not, write to the Free Software
|
|
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
## 02110-1301, USA.
|
|
|
|
EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4
|
|
|
|
DISTCLEANFILES = atconfig $(check_SCRIPTS)
|
|
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
|
|
|
|
## ------------ ##
|
|
## package.m4. ##
|
|
## ------------ ##
|
|
|
|
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
|
|
{ \
|
|
echo '# Signature of the current package.'; \
|
|
echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \
|
|
echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \
|
|
echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \
|
|
echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \
|
|
echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
|
|
} >$(srcdir)/package.m4
|
|
|
|
## ------------ ##
|
|
## Test suite. ##
|
|
## ------------ ##
|
|
|
|
TESTSUITE_AT = \
|
|
local.at \
|
|
testsuite.at \
|
|
input.at \
|
|
output.at sets.at reduce.at \
|
|
synclines.at headers.at actions.at conflicts.at \
|
|
calc.at \
|
|
torture.at existing.at regression.at \
|
|
c++.at \
|
|
cxx-type.at glr-regression.at
|
|
|
|
TESTSUITE = $(srcdir)/testsuite
|
|
|
|
AUTOTEST = $(AUTOM4TE) --language=autotest
|
|
$(TESTSUITE): package.m4 $(TESTSUITE_AT)
|
|
$(AUTOTEST) -I $(srcdir) testsuite.at -o $@.tmp
|
|
mv $@.tmp $@
|
|
|
|
atconfig: $(top_builddir)/config.status
|
|
cd $(top_builddir) && ./config.status tests/$@
|
|
|
|
clean-local:
|
|
test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean
|
|
|
|
check-local: atconfig atlocal $(TESTSUITE)
|
|
$(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS)
|
|
|
|
check_SCRIPTS = bison
|
|
|
|
# Run the test suite on the *installed* tree.
|
|
installcheck-local:
|
|
$(SHELL) $(TESTSUITE) AUTOTEST_PATH="$(bindir)" $(TESTSUITEFLAGS)
|
|
|
|
# Be real mean with it.
|
|
.PHONY: maintainer-check-g++
|
|
maintainer-check-g++: $(TESTSUITE)
|
|
$(TESTSUITE) CC='$(CXX)'
|
|
|
|
.PHONY: maintainer-check-posix
|
|
maintainer-check-posix: $(TESTSUITE)
|
|
$(TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
|
|
|
|
.PHONY: maintainer-check-valgrind
|
|
maintainer-check-valgrind: $(TESTSUITE)
|
|
test -z '$(VALGRIND)' || \
|
|
VALGRIND_OPTS='--leak-check=full --show-reachable=yes' \
|
|
$(TESTSUITE) PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q'
|
|
|
|
.PHONY: maintainer-check
|
|
maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
|