Paul Eggert [Sun, 22 May 2005 17:45:28 +0000 (17:45 +0000)]
Various maintainer cleanups.
* .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
conftest*, for benefit of CVS commands run at the same time as
"configure". Add build-aux, since "bootstrap" now creates it and
its subfiles.
* Makefile.cfg (move_if_change): Remove.
* Makefile.maint: Remove the update stuff; we now use "bootstrap".
(ftp-gnu, www-gnu, move_if_change, local_updates, update):
(po_repo, do-po-update, po-update, wget_files, get-targets):
(config.guess-url_prefix, config.sub-url_prefix):
(ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
(standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
Remove.
* configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
this is now the recommended name.
* config/.cvsignore: Remove config.guess, config.rpath, config.sub,
depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
ylwrap. These files now go into build-aux.
* config/move-if-change: Remove.
* config/prev-version.txt: Bump from 1.75 to 2.0.
Paul Eggert [Sun, 22 May 2005 08:04:06 +0000 (08:04 +0000)]
* bootstrap: Add stdio-safer, unistd-safer modules.
Remove m4/glibc2.m4 (introduced by latest gnulib, but
we don't need it).
* lib/.cvsignore: Add dup-safer.c, fd-safer.c,
fopen-safer.c, stdio-safer.h, unistd-safer.h.
* lib/subpipe.c: Include "unistd-safer.h".
(create_subpipe): Make sure all the newly-created
file descriptors are > 2, so that diagnostics don't
get sent down them (which might cause Bison to hang, in theory).
* m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
* src/files.c (xfopen): Use fopen_safer, not fopen.
Paul Eggert [Sun, 22 May 2005 07:31:41 +0000 (07:31 +0000)]
* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
yesterday's yacc.c fix.
Paul Eggert [Sun, 22 May 2005 07:31:24 +0000 (07:31 +0000)]
(yy::]b4_parser_class_name[::parse): Port
yesterday's yacc.c fix.
Paul Eggert [Sun, 22 May 2005 06:26:13 +0000 (06:26 +0000)]
Update copyright date.
Paul Eggert [Sun, 22 May 2005 05:20:48 +0000 (05:20 +0000)]
Regenerate.
Paul Eggert [Sun, 22 May 2005 05:20:01 +0000 (05:20 +0000)]
Fix a destructor bug reported by Wolfgang Spraul in
<http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
* data/yacc.c (yyabortlab): Don't call destructor, and
don't set yychar to EMPTY.
(yyoverflowlab): Don't call destructor.
(yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
* tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
since we no longer output the message "discarding lookahead token
end of input ()".
Paul Hilfinger [Sat, 21 May 2005 08:35:51 +0000 (08:35 +0000)]
* data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
fix a small glitch in debugging output.
(yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
after YY_SYMBOL_PRINT where needed.
(struct yyGLRState): Add some comments.
(struct yySemanticOption): Add some comments.
(union yyGLRStackItem): Add comment.
(yymergeOptionSets): Correct this to properly perform the union,
avoiding infinite reported by Michael Rosien.
Update comment.
* tests/glr-regression.at: Add test for GLR merging error reported
by M. Rosien.
Paul Eggert [Sat, 14 May 2005 06:49:48 +0000 (06:49 +0000)]
Update FSF postal mail address.
Paul Eggert [Wed, 11 May 2005 19:38:24 +0000 (19:38 +0000)]
* tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
Problem reported by Ralf Menzel.
Paul Eggert [Mon, 2 May 2005 04:56:45 +0000 (04:56 +0000)]
Regenerate.
Paul Eggert [Mon, 2 May 2005 04:52:33 +0000 (04:52 +0000)]
* tests/actions.at: Test that stack overflow invokes destructors.
From Marcus Holland-Moritz.
* data/yacc.c (yyerrlab): Move the code that destroys the stack
from here....
(yyreturn): to here. That way, destructors are called properly
even if the stack overflows, or the user calls YYACCEPT or
YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
(yyoverflowlab): Destroy the lookahead.
Paul Eggert [Mon, 25 Apr 2005 03:14:22 +0000 (03:14 +0000)]
(YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
Paul Eggert [Sun, 17 Apr 2005 08:14:52 +0000 (08:14 +0000)]
Regenerate.
Paul Eggert [Sun, 17 Apr 2005 08:13:37 +0000 (08:13 +0000)]
* tests/input.at (Torturing the Scanner): Adjust to lack of quotes
in diagnostics.
Paul Eggert [Sun, 17 Apr 2005 08:12:56 +0000 (08:12 +0000)]
(Torturing the Scanner): Adjust to lack of quotes in diagnostics.
Paul Eggert [Sun, 17 Apr 2005 08:07:15 +0000 (08:07 +0000)]
* NEWS: Bison-generated C parsers no longer quote literal strings
associated with tokens.
* src/output.c (prepare_symbols): Don't escape strings,
since users don't want to see C escapes.
* tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
in diagnostics.
* tests/regression.at (Token definitions, Web2c Actions): Likewise.
Paul Eggert [Sat, 16 Apr 2005 08:11:52 +0000 (08:11 +0000)]
* tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
the data size is known to be too small and we can't increase it.
Paul Eggert [Sat, 16 Apr 2005 08:11:33 +0000 (08:11 +0000)]
(AT_INCREASE_DATA_SIZE): Skip the test if
the data size is known to be too small and we can't increase it.
Paul Eggert [Sat, 16 Apr 2005 06:34:20 +0000 (06:34 +0000)]
Regenerate.
Paul Eggert [Sat, 16 Apr 2005 06:32:51 +0000 (06:32 +0000)]
* src/parse-gram.y: Include quotearg.h.
(string_as_id): Quote $1 before using it as a key, since the
lexer no longer quotes it for us.
(string_content): Don't strip quotes, since lexer no longer
quotes it for us.
* src/scan-gram.l: Include quotearg.h.
("\""): Omit quote.
("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
a key, since the rest of the lexer doesn't quote it.
* src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
* tests/regression.at (Token definitions): Check for backslashes
in token strings.
Paul Eggert [Sat, 16 Apr 2005 06:25:03 +0000 (06:25 +0000)]
(YYSTACK_ALLOC_MAXIMUM): New macro.
(YYSIZE_T): Define to unsigned long int when using an older compiler.
(yyparse): Revamp code to generate long syntax error message, to
make it easier to translate, and to avoid problems with arithmetic
overflow. Change "virtual memory" to "memory" in diagnostic, since
we don't know whether the memory is virtual.
Paul Eggert [Thu, 14 Apr 2005 00:09:11 +0000 (00:09 +0000)]
Regenerate.
Paul Eggert [Thu, 14 Apr 2005 00:08:56 +0000 (00:08 +0000)]
* NEWS: Bison-generated C parsers now use the _ macro to
translate strings.
* data/yacc.c (_) [!defined _]: New macro.
All English strings wrapped inside this macro.
* doc/bison.texinfo (Bison Parser): Document _.
* po/POTFILES.in: Include src/parse-gram.c, since it now
includes translateable strings that parse-gram.y doesn't.
Paul Eggert [Tue, 12 Apr 2005 22:38:43 +0000 (22:38 +0000)]
Fix aliases bug reported by Tim Van Holder.
Paul Eggert [Tue, 12 Apr 2005 22:38:20 +0000 (22:38 +0000)]
(symbol_make_alias): Call symbol_type_set,
reverting the 2004-10-11 change to this function.
(symbol_check_alias_consistency): Don't call symbol_type_set
if the type name is already correct.
Paul Eggert [Tue, 12 Apr 2005 22:35:53 +0000 (22:35 +0000)]
(Typed symbol aliases): New test.
Paul Eggert [Sat, 26 Mar 2005 01:13:13 +0000 (01:13 +0000)]
* tests/regression.at (Token definitions): Don't use a token named c.
Paul Eggert [Sat, 26 Mar 2005 01:12:59 +0000 (01:12 +0000)]
(Token definitions): Don't use a token named c, as that generates a
"#define c ..." that runs afoul of buggy stdlib.h that uses the
identifier c as a member of struct drand48_data.
Paul Eggert [Mon, 21 Mar 2005 22:36:41 +0000 (22:36 +0000)]
* bootstrap: Change translation URL.
Paul Eggert [Mon, 21 Mar 2005 06:58:31 +0000 (06:58 +0000)]
* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
after operands; POSIX says this isn't portable for the c99 command.
Paul Eggert [Mon, 21 Mar 2005 06:58:11 +0000 (06:58 +0000)]
(AT_COMPILE, AT_COMPILE_CXX): Don't put options
after operands; POSIX says this isn't portable for the c99 command.
Paul Eggert [Fri, 18 Mar 2005 20:57:37 +0000 (20:57 +0000)]
* tests/glr-regression.at (glr-regr2a.y): Try to dump core
immediately if a data overrun has occurred.
Paul Eggert [Fri, 18 Mar 2005 20:57:19 +0000 (20:57 +0000)]
(glr-regr2a.y): Try to dump core
immediately if a data overrun has occurred; this may help us track
down what may be a spurious failure on MacOS.
Paul Eggert [Thu, 17 Mar 2005 23:42:57 +0000 (23:42 +0000)]
Respond to problems reported by twlevo@xs4all.nl.
Paul Eggert [Thu, 17 Mar 2005 23:41:38 +0000 (23:41 +0000)]
Use "trap - 0" rather than the unportable "trap 0".
Paul Eggert [Thu, 17 Mar 2005 19:22:00 +0000 (19:22 +0000)]
Regenerate.
Paul Eggert [Thu, 17 Mar 2005 19:20:15 +0000 (19:20 +0000)]
* src/vcg.h: Comment fix.
* src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
(G_CMAX): Change to -1 instead of INT_MAX.
Paul Eggert [Thu, 17 Mar 2005 19:19:44 +0000 (19:19 +0000)]
(yyparse): Omit spaces before #line.
Problem reported by twlevo@xs4all.nl.
Paul Eggert [Tue, 15 Mar 2005 23:53:47 +0000 (23:53 +0000)]
* src/tables.c (state_number_to_vector_number): Put it inside an
"#if 0".
Paul Eggert [Tue, 15 Mar 2005 23:53:27 +0000 (23:53 +0000)]
(state_number_to_vector_number): Put it inside an
"#if 0", since it's not currently used.
Paul Eggert [Mon, 7 Mar 2005 06:41:39 +0000 (06:41 +0000)]
* src/output.c (escaped_output): Renamed from
escaped_file_name_output, since we now use it for symbol tags as
well. All uses changed.
(symbol_destructors_output, symbol_printers_output):
Escape symbol tags too.
Problem reported by Matyas Forstner in
<http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
* src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
not needed.
* src/output.c (user_actions_output, token_definitions_output,
symbol_destructors_output, symbol_printers_output): Likewise.
* src/reader.c (prologue_augment): Likewise.
* src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
Paul Eggert [Mon, 7 Mar 2005 06:35:31 +0000 (06:35 +0000)]
(output_edge): Don't quote linestyle arg.
Paul Eggert [Tue, 1 Mar 2005 00:41:58 +0000 (00:41 +0000)]
* doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
example, reported by Derek M Jones.
Paul Eggert [Tue, 1 Mar 2005 00:41:33 +0000 (00:41 +0000)]
(Semantic Tokens): Fix scoping problem in
example, reported by Derek M Jones. Also, make the example even
more outrageous, to better illustrate how bad the problem is.
Paul Eggert [Thu, 24 Feb 2005 17:24:23 +0000 (17:24 +0000)]
* doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for putsym.
Paul Eggert [Thu, 24 Feb 2005 17:23:57 +0000 (17:23 +0000)]
(Mfcalc Symtab): Correct the prototype for putsym.
Paul Eggert [Wed, 23 Feb 2005 09:15:27 +0000 (09:15 +0000)]
* doc/bison.texinfo: minor typo fixes
Paul Eggert [Wed, 23 Feb 2005 09:15:09 +0000 (09:15 +0000)]
(Language and Grammar): some -> same
(Epilogue): int he -> in the
Paul Eggert [Tue, 8 Feb 2005 00:37:43 +0000 (00:37 +0000)]
Fix $ in test names.
Paul Eggert [Mon, 7 Feb 2005 23:14:55 +0000 (23:14 +0000)]
Renamed from "Invalid \$n", to work around an Autoconf bug with dollar
signs in test names.
Paul Eggert [Mon, 7 Feb 2005 23:14:22 +0000 (23:14 +0000)]
(Improper handling of embedded actions and dollar(-N) in GLR parsers):
Renamed from "Improper handling of embedded actions and $-N in GLR
parsers", work around an Autoconf bug with dollar signs in test names.
Paul Eggert [Fri, 28 Jan 2005 22:07:09 +0000 (22:07 +0000)]
* src/vcg.c (output_graph): G_VIEW -> normal_view.
Paul Eggert [Fri, 28 Jan 2005 22:06:55 +0000 (22:06 +0000)]
(output_graph): G_VIEW -> normal_view in case someone
wants to redefine G_VIEW.
Paul Eggert [Thu, 27 Jan 2005 22:03:21 +0000 (22:03 +0000)]
* src/vcg.c (get_view_str): Remove case for normal_view.
Paul Eggert [Thu, 27 Jan 2005 22:03:07 +0000 (22:03 +0000)]
(get_view_str): Remove case for normal_view.
Paul Eggert [Mon, 24 Jan 2005 23:48:11 +0000 (23:48 +0000)]
* configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
Paul Eggert [Mon, 24 Jan 2005 23:47:49 +0000 (23:47 +0000)]
(O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
Paul Eggert [Mon, 24 Jan 2005 23:26:33 +0000 (23:26 +0000)]
* doc/bison.texinfo: Change @dircategory from "GNU programming
tools" to "Software development".
Paul Eggert [Mon, 24 Jan 2005 23:26:17 +0000 (23:26 +0000)]
Change @dircategory from "GNU programming tools" to "Software development".
Paul Eggert [Sun, 23 Jan 2005 08:38:33 +0000 (08:38 +0000)]
* tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
Paul Eggert [Sun, 23 Jan 2005 08:37:35 +0000 (08:37 +0000)]
(AT_CHECK_DOXYGEN): Don't use options after operands.
Paul Eggert [Fri, 21 Jan 2005 19:29:25 +0000 (19:29 +0000)]
Regenerate.
Paul Eggert [Fri, 21 Jan 2005 19:12:51 +0000 (19:12 +0000)]
* data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register".
Paul Eggert [Fri, 21 Jan 2005 19:12:32 +0000 (19:12 +0000)]
(YYCOPY, yystpcpy, yyparse): Remove "register".
Paul Eggert [Mon, 17 Jan 2005 09:35:41 +0000 (09:35 +0000)]
Regenerate.
Paul Eggert [Mon, 17 Jan 2005 09:33:57 +0000 (09:33 +0000)]
* data/glr.c (yyuserAction): Add "default: break;" case to pacify
gcc -Wswitch-default.
* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
* data/yacc.c (yyparse): Likewise.
Paul Eggert [Thu, 13 Jan 2005 00:13:37 +0000 (00:13 +0000)]
* src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
already. Let config.h define any nonstandard values.
Paul Eggert [Thu, 13 Jan 2005 00:13:21 +0000 (00:13 +0000)]
(OUTPUT_EXT, TAB_EXT): Define only if not defined
already. Let config.h define any nonstandard values.
Paul Eggert [Mon, 10 Jan 2005 18:22:30 +0000 (18:22 +0000)]
* tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10).
Paul Eggert [Mon, 10 Jan 2005 18:22:11 +0000 (18:22 +0000)]
(_AT_DATA_CALC_Y): Use alarm (100), not alarm (10).
Paul Eggert [Sat, 8 Jan 2005 05:22:36 +0000 (05:22 +0000)]
* data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
being defined and not used.
* data/lalr1.cc (yyparse): Likewise.
Use "if (false)" rather than "if (0)".
Paul Eggert [Sat, 8 Jan 2005 05:22:19 +0000 (05:22 +0000)]
(yyparse): Pacify non-GCC compilers about yyerrorlab
being defined and not used.
Use "if (false)" rather than "if (0)".
Paul Eggert [Sat, 8 Jan 2005 05:21:46 +0000 (05:21 +0000)]
(yyparse): Pacify non-GCC compilers about yyerrorlab
being defined and not used.
Paul Eggert [Wed, 5 Jan 2005 21:35:46 +0000 (21:35 +0000)]
TODO: Mention that we should allow NUL bytes in tokens.
Paul Eggert [Wed, 5 Jan 2005 21:35:08 +0000 (21:35 +0000)]
Mention that we should support NUL bytes in tokens.
Paul Eggert [Mon, 3 Jan 2005 07:52:46 +0000 (07:52 +0000)]
* src/scan-skel.l (<<EOF>>): Don't close standard output.
Paul Eggert [Mon, 3 Jan 2005 07:52:31 +0000 (07:52 +0000)]
(<<EOF>>): Don't close standard output.
Problem reported by Hans Aberg.
Paul Eggert [Sat, 1 Jan 2005 09:28:00 +0000 (09:28 +0000)]
Fix bug when stdout is closed. Update copyright to 2005.
Paul Eggert [Sat, 1 Jan 2005 09:27:38 +0000 (09:27 +0000)]
(version): Happy new year; update overall
program copyright date from 2004 to 2005.
Paul Eggert [Sat, 1 Jan 2005 09:23:41 +0000 (09:23 +0000)]
(AT_CHECK_OUTPUT): New arg SHELLIO.
(Output file names.): Add a test for the case when standard output
is closed.
Paul Eggert [Sat, 1 Jan 2005 09:23:16 +0000 (09:23 +0000)]
("@output ".*\n): Don't close standard output.
Paul Eggert [Sun, 26 Dec 2004 07:26:32 +0000 (07:26 +0000)]
* doc/bison.texinfo (@copying): Update FDL version number to 1.2,
to fix an oversight in the Bison 2.0 manual.
Paul Eggert [Sun, 26 Dec 2004 07:25:05 +0000 (07:25 +0000)]
Update FDL license revision to 1.2.
Paul Eggert [Sun, 26 Dec 2004 06:50:35 +0000 (06:50 +0000)]
Bump version number to 2.0a.
Paul Eggert [Sun, 26 Dec 2004 06:22:17 +0000 (06:22 +0000)]
Fix changelog entry for configure.ac.
Paul Eggert [Sun, 26 Dec 2004 06:13:31 +0000 (06:13 +0000)]
* tests/torture.at (Exploding the Stack Size with Alloca): Set
YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
otherwise, we're not testing alloca. Unfortunately there's no
simple way to consult HAVE_ALLOCA here.
(This made it into 2.0.)
Paul Eggert [Sun, 26 Dec 2004 06:12:18 +0000 (06:12 +0000)]
(Exploding the Stack Size with Alloca): Set
YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
otherwise, we're not testing alloca. Unfortunately there's no
simple way to consult HAVE_ALLOCA here.
Paul Eggert [Sun, 26 Dec 2004 05:51:10 +0000 (05:51 +0000)]
Regenerate.
Paul Eggert [Sun, 26 Dec 2004 05:50:28 +0000 (05:50 +0000)]
Version 2.0.
Paul Eggert [Sun, 26 Dec 2004 05:49:52 +0000 (05:49 +0000)]
Reformat news for version 2.0.
Paul Eggert [Sun, 26 Dec 2004 05:49:16 +0000 (05:49 +0000)]
(AC_INIT): Bump version to 2.0.
Paul Eggert [Sun, 26 Dec 2004 05:42:27 +0000 (05:42 +0000)]
(yydestruct_): Pacify unused variable warning for yymsg, too.
Paul Eggert [Sun, 26 Dec 2004 05:26:30 +0000 (05:26 +0000)]
(new_itemsets): Use memset rather than zeroing by hand. This avoids a
warning about comparing int to size_t when GCC warnings are enabled.
Paul Eggert [Wed, 22 Dec 2004 21:19:47 +0000 (21:19 +0000)]
* NEWS: Bison-generated parsers no longer default to using the
alloca function (when available) to extend the parser stack, due
to widespread problems in unchecked stack-overflow detection.
* data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
responsibility to set it to a positive value. This lets the user
specify a value that is not a preprocessor constant.
* data/yacc.c (YYMAXDEPTH): Likewise.
(YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
* doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
to be a compile-time constant. However, explain the constraints on it.
Also, explain the constraints on YYINITDEPTH.
(Table of Symbols): Explain that alloca is no longer the default.
Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
to 1.
Paul Eggert [Wed, 22 Dec 2004 18:28:26 +0000 (18:28 +0000)]
* doc/bison.texinfo (Location Default Action): Mention that n must be zero when k is.
Paul Eggert [Wed, 22 Dec 2004 18:26:37 +0000 (18:26 +0000)]
(Location Default Action): Mention that n must be zero when k is zero.
Akim Demaille [Wed, 22 Dec 2004 10:06:15 +0000 (10:06 +0000)]
* data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
(parser::state_type, parser::semantic_type, parser::location_type):
Private, not public.
(parser::parse): Return ints, not bool.
Returning a bool introduces a problem: 0 corresponds to false, and
it seems weird to return false on success. Returning true changes
the conventions for yyparse.
Alternatively we could return void and send an exception.
There is no clear consensus (yet?).
(state_stack, semantic_stack, location_stack): Rename as...
(state_stack_type, semantic_stack_type, location_stack_type): these.
Private, not public.
* tests/c++.at: New.
* tests/testsuite.at, tests/Makefile.am: Adjust.
Akim Demaille [Tue, 21 Dec 2004 12:49:39 +0000 (12:49 +0000)]
* data/lalr1.cc (parser::parse): Return a bool instead of an int.
Akim Demaille [Tue, 21 Dec 2004 12:26:56 +0000 (12:26 +0000)]
Don't impose std::string for filenames.
* data/lalr1.cc (b4_filename_type): New.
(position::filename): Use it.
(parser.hh): Move the inclusion of stack.hh and location.hh below
the user code, so that needed headers for the filename type can be
included first.
Forward declare them before the user code.
* tests/Makefile.am (check-local, installcheck-local): Pass
TESTSUITEFLAGS to the TESTSUITE.