summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* examples: fix missing dependenciesAkim Demaille2019-10-241-0/+3
| | | | | | | | | | | Reported by Thomas Petazzoni. https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00000.html * examples/c/reccalc/local.mk: Complete dependencies, including for earlier versions of Automake (for sake of our CI, on top of Ubuntu Xenial/Bionic, which feature only Automake 1.15). (%D%/scan.c %D%/scan.h): Upgrade to the full version provided in Automake's documentation.
* build: reenable -Wtype-limitsAkim Demaille2019-10-241-6/+3
| | | | | | | | | | | | | | | | See https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html to https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00073.html. Paul Eggert's changes in gnulib do fix the issue for modern GCCs (7, 8, 9) on macOS. Unfortunately these warnings are back on the CI (GNU/Linux) with GCC 4.6, 4.7, (not 4.8) and 4.9. Disable the warning locally. * configure.ac (warn_common, warn_tests): Remove -Wtype-limits. * src/system.h (IGNORE_TYPE_LIMITS_BEGIN, IGNORE_TYPE_LIMITS_END): New. * src/InadequacyList.c, src/parse-gram.c, src/parse-gram.y, * src/symtab.c: Use it.
* build: remove dmalloc supportAkim Demaille2019-10-241-1/+0
| | | | | | | Today sanitizers are a better alternative. * m4/dmalloc.m4: Remove. * configure.ac, src/system.h: Adjust.
* build: disable -Wtautological-constant-out-of-range-compareAkim Demaille2019-10-211-2/+9
| | | | | | | | | Also see e31f92495ce14a5d924b148c8ea1470003cc47c1 and https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html * configure.ac (warn_common): Disable -Wtautological-constant-out-of-range-compare. (warn_tests): Restore it.
* build: disable -Wtype-limits, except in the test suiteAkim Demaille2019-10-201-2/+3
| | | | | | | | | | The current implementation of lib/intprops.h results in "unsigned < 0" comparisons, which triggers warnings. See https://lists.gnu.org/archive/html/bug-bison/2019-10/msg00061.html * configure.ac (warn_common): Disable -Wtype-limits. (warn_tests): Restore it.
* configure: perl is not requiredAkim Demaille2019-10-101-3/+0
| | | | | | But it's used in various places, including in some tests. * configure.ac: here.
* configure: don't require FlexAkim Demaille2019-10-091-2/+2
| | | | | | | | | | | Flex should not be required to build Bison or run the test suite (of course it is needed for maintaining Bison). Yet the Automake conditional FLEX_WORKS does not work. * m4/flex.m4 (_AC_PROG_LEX_YYTEXT_DECL): Since this is called conditionally, don't define LEX_IS_FLEX here, but rather... (AC_PROG_LEX): here. * configure.ac: Be more cautious about possibly undefined variables.
* build: fix distcheckAkim Demaille2019-09-111-0/+11
| | | | | * configure.ac (gl_LIBOBJS): Adjust so that the generated files are indeed the expected ones.
* d: track locationsAkim Demaille2019-06-231-1/+1
| | | | | | | | | | | | | | | * configure.ac (DCFLAGS): Pass -g. * data/skeletons/d.m4 (b4_locations_if): Remove, let bison.m4's one do its job. * data/skeletons/lalr1.d (position): Leave filename empty by default. (position::toString): Don't print empty file names. (location::this): New ctor. (location::toString): Match the implementations of C/C++. (yy_semantic_null): Leave undefined, the previous implementation does not compile. * tests/calc.at: Improve the implementation for D. Enable more checks, in particular using locations. * tests/local.at (AT_YYERROR_DEFINE(d)): Fix its implementation.
* examples: don't run those that require f?lex when it's not availableAkim Demaille2019-05-191-0/+1
| | | | | | | | Reported by Bruno Haible. http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00026.html * configure.ac (FLEX_WORKS): New. * examples/c/lexcalc/local.mk, examples/c/reccalc/local.mk: Use it.
* build: use gettext-hAkim Demaille2019-04-251-1/+1
| | | | | | | | | | | We were using the gnulib's gettext module with tricks in bootstrap.conf to avoid useless files. Instead, use gnulib's gettext-h module. * .travis.yml: Force Gettext 0.18.3 on Trusty. * bootstrap.conf: Use gettext-h instead of gettext. (excluded_files): Remove. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.
* gnulib: let it use its own PO domainAkim Demaille2019-04-231-0/+1
| | | | | | | | | | See https://www.gnu.org/software/gnulib/manual/html_node/Localization.html. * bootstrap.conf: Create gnulib-po. * Makefile.am, configure.ac: Use it. * po/POTFILES.in: Remove files now in gnulib. * src/main.c: Open the bison-gnulib domain.
* dlang: initial changes to run the calc tests on itAkim Demaille2019-02-261-0/+1
| | | | | | | | | | | | | | | | * configure.ac (DCFLAGS): Define. * tests/atlocal.in: Receive it. * data/skeletons/d.m4 (api.parser.class): Remove spurious YY. * data/skeletons/lalr1.d (yylex): Return an int instead of a YYTokenType, so that we can use characters as tokens. * examples/d/calc.y: Adjust. * tests/local.at: Initial support for D. (AT_D_IF, AT_DATA_GRAMMAR(D), AT_YYERROR_DECLARE(d)) (AT_YYERROR_DECLARE_EXTERN(d), AT_YYERROR_DEFINE(d)) (AT_MAIN_DEFINE(d), AT_COMPILE_D, AT_LANG_COMPILE(d), AT_LANG_EXT(d)): New. * tests/calc.at: Initial support for D. * tests/headers.at
* c++: address -Wweak-vtables warningsAkim Demaille2019-01-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Reported by Derek Clegg http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00021.html aux/parser-internal.h:429:12: error: 'syntax_error' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit [-Werror,-Wweak-vtables] struct syntax_error : std::runtime_error To avoid this warning, we need syntax_error to have a virtual function defined in a compilation unit. Let it be the destructor. To comply with C++98, this dtor should be 'throw()'. Merely making YY_NOEXCEPT be 'throw()' in C++98 triggers errors (http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00022.html), so let's introduce YY_NOTHROW and flag only ~syntax_error with it. Also, since we now have an explicit dtor, we need to provide an copy ctor. * configure.ac (warn_cxx): Add -Wweak-vtables. * data/skeletons/c++.m4 (YY_NOTHROW): New. (syntax_error): Declare the dtor, and define the copy ctor. * data/skeletons/glr.cc, data/skeletons/lalr1.cc (~syntax_error): Define.
* configure: don't try to run C++ warnings on CAkim Demaille2019-01-151-2/+2
| | | | | | | Reported by Derek Clegg. https://lists.gnu.org/archive/html/bison-patches/2019-01/msg00066.html * configure.ac: here.
* c, c++: avoid implicit fall-throwAkim Demaille2019-01-151-1/+2
| | | | | | | | | | | Reported by Derek Clegg. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00004.html * configure.ac (warn_common): Add -Wimplicit-fallthrough. This does trigger failures in the test suite. * data/skeletons/glr.c, data/skeletons/lalr1.cc, * data/skeletons/yacc.c, tests/c++.at: Make fall-throws explicit.
* c++: avoid -Wundefined-func-template warnings from clangAkim Demaille2019-01-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reported by Derek Clegg. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00006.html Clang does not like this: template <typename D> struct basic_symbol : D { basic_symbol(); }; struct by_type {}; struct symbol_type : basic_symbol<by_type> { symbol_type(){} }; It gives: $ clang++-mp-7.0 -Wundefined-func-template foo.cc -c foo.cc:11:3: warning: instantiation of function 'basic_symbol<by_type>::basic_symbol' required here, but no definition is available [-Wundefined-func-template] symbol_type(){} ^ foo.cc:4:3: note: forward declaration of template entity is here basic_symbol(); ^ foo.cc:11:3: note: add an explicit instantiation declaration to suppress this warning if 'basic_symbol<by_type>::basic_symbol' is explicitly instantiated in another translation unit symbol_type(){} ^ 1 warning generated. The same applies for the basic_symbol's destructor and `clear()`. * configure.ac (warn_cxx): Add -Wundefined-func-template. This triggered one failure in the test suite: * tests/headers.at (Sane headers): here, where we check that we can compile the generated headers in other compilation units than the parser's. Add a variant type to make sure that basic_symbol and symbol_type are properly generated in this case. * data/skeletons/c++.m4 (basic_symbol): Inline the definitions of the destructor and of `clear` in the class definition.
* Revert the last two commitsAkim Demaille2019-01-141-1/+1
| | | | | | | | They should not have been pushed, sorry about that. This reverts - commit 8575bd06ae6e65f3a30b21a3e022a968e4c7ae7a. - commit 55bf52860eac5c1394dc344a691220272df32b09.
* c++: avoid warnings about extraneous semi-colonsAkim Demaille2019-01-141-1/+1
| | | | | | | Reported by Derek Clegg. * configure.ac (warn_common): Add -Wextra-semi. * data/skeletons/c++.m4: Remove extraneous semi-colon.
* c++: avoid warnings about extraneous semi-colonsAkim Demaille2019-01-141-1/+1
| | | | | | | | Reported by Derek Clegg. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00005.html * configure.ac (warn_cxx): Add -Wextra-semi. * data/skeletons/c++.m4: Remove extraneous semi-colon.
* c++: beware of -WshadowAkim Demaille2019-01-131-2/+2
| | | | | | | | | | | | | | | | | | | This line: slice<stack_symbol_type, stack_type> slice (yystack_, yylen); triggers warnings: parse.h:1790:11: note: shadowed declaration is here Reported by Frank Heckenbach. http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00002.html * configure.ac (warn_c): Move -Wshadow to... (warn_common): here. * data/skeletons/stack.hh (slice): Define as an inner class of stack. * data/skeletons/lalr1.cc: Adjust. Rename the variable as 'range' instead of 'slice'.
* package: bump copyrights to 2019Akim Demaille2019-01-051-2/+2
|
* package: make bison a relocatable packageAkim Demaille2018-12-251-0/+1
| | | | | | | | | | | | | | | | | | Suggested by David Barto https://lists.gnu.org/archive/html/help-bison/2015-02/msg00004.html and Victor Zverovich. https://lists.gnu.org/archive/html/bison-patches/2018-10/msg00121.html This is very easy to do, thanks to work by Bruno Haible in gnulib. See "Supporting Relocation" in gnulib's documentation. * bootstrap.conf: We need relocatable-prog and relocatable-script (for yacc). * src/yacc.in: New. * configure.ac, src/local.mk: Instantiate it. * src/main.c, src/output.c (main, pkgdatadir): Use relocatable2. * doc/bison.texi (FAQ): Document it.
* d: add an exampleAkim Demaille2018-12-041-1/+2
| | | | * examples/d/calc.test, examples/d/calc.y, examples/d/local.mk:
* d: add experimental support for the D languageAkim Demaille2018-12-041-4/+9
| | | | | * configure.ac (ENABLE_D): New. * src/getargs.c (valid_languages): Add d.
* java: add an exampleAkim Demaille2018-12-011-0/+1
| | | | | | | | | * examples/java/Calc.y: New, based on test 495: "Calculator parse.error=verbose %locations". * examples/java/Calc.test, examples/java/local.mk: New. * configure.ac (ENABLE_JAVA): New. * examples/test (prog): Be ready to run Java programs.
* warning: avoid warnings about unreachable codeAkim Demaille2018-11-251-0/+12
| | | | | | | | | | | | | | | | | | | Reported by Uxio Prego. https://lists.gnu.org/archive/html/help-bison/2018-11/msg00031.html We also need to move the unreachable 'goto' to a reachable place, otherwise clang complains about the code being unreachable anyway. See also https://bugs.llvm.org/show_bug.cgi?id=39736. Interestingly, we don't have to apply that trick to `#define YYCDEBUG if (false) std::cerr`, clang does not warn when the code comes from macro expansion. * configure.ac: Use -Wunreachable-code when supported. * data/lalr1.cc, data/yacc.c: Pacify clang's warning about `if (0)` by using a macro. Another possibility was to move this statement to a reachable place. * tests/actions.at, tests/c++.at: Avoid generating unreachable code.
* configure: quit on trying to get ICC and Flex be friendsAkim Demaille2018-10-241-7/+3
| | | | | | | | | | The CI is using Flex 2.5.35. And ICC is too picky for it. Let's stop making these warnings errors. I wish I could disable them in the source files using the ICC version and the Flex version, but ICC's pragma support is unclear, and I'm tired of fighting it. * configure.ac (FLEX_SCANNER_CXXFLAGS): Make warnings warnings. * examples/c++/local.mk: Comment changes.
* doc: an introductory example for C++Akim Demaille2018-10-241-1/+2
| | | | | | | | | | | | Suggested by Victor Khomenko. http://lists.gnu.org/archive/html/bug-bison/2018-08/msg00037.html * doc/bison.texi (A Simple C++ Example): New. * examples/c++/local.mk, examples/c++/simple.test: New. Extract, check, and install this new example. * examples/local.mk: Adjust. * examples/test: Adjust to the case where the dirname differs from the test name.
* build: enable more warnings during testsAkim Demaille2018-10-231-2/+4
| | | | | | | Prompted by Derek Clegg. http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00018.html * configure.ac: here.
* java: bump to Java SE 7Akim Demaille2018-10-151-1/+1
| | | | | | | | | | | | macOS 10.14 no longer supports versions of Java earlier than 5. And Java 6 will be deprecated by the end of this year. So let's move our requirement to Java 7. Reported by Yu Yijun. https://lists.gnu.org/archive/html/bug-bison/2018-09/msg00060.html Suggested by Paul Eggert and Bruno Haible. http://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00094.html * configure.ac: Require Java 7, both compiler and runtime.
* gnulib: update timevarAkim Demaille2018-10-141-1/+0
| | | | | See https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00005.html.
* spelling: possiblyJosh Soref2018-10-051-1/+1
|
* gnulib: move timevar to itAkim Demaille2018-09-301-1/+1
| | | | | | | | * lib/timevar.c, lib/timevar.h, m4/timevar.m4: Remove. * gnulib: Update. * configure.ac: Adjust. * lib/timevar.def: Use lower case for the timevvars. Adjust dependencies.
* build: rename and simplify the -std checks for C++Akim Demaille2018-09-231-6/+6
| | | | | | | | Too much code duplication. * m4/bison-cxx-std.m4: s/BISON_CXX_COMPILE_STDCXX/BISON_CXXSTD/. (BISON_CXXSTD): New. * configure.ac: Use it.
* build: check for C++98 and 03 like the othersAkim Demaille2018-09-231-2/+2
| | | | | | * m4/bison-cxx-std.m4 (BISON_CXX_COMPILE_STDCXX_98) (BISON_CXX_COMPILE_STDCXX_03): New. * configure.ac: Use them.
* build: don't accept a broken standard lib for C++Akim Demaille2018-09-191-1/+1
| | | | | | | | | | | | | | | | | On the CI, we had failures such as: ./c++.at:401: $PREPARSER ./list stderr: ./list: error while loading shared libraries: libc++.so.1: cannot open shared object file: No such file or directory because we accepted `-std=c++ -stdlib=libc++` although libc++ is not installed on the machine. * m4/ax_check_compile_flag.m4 (AX_CHECK_COMPILE_FLAG): Rewrite as... * m4/bison-check-compile-flag.m4 (BISON_CHECK_COMPILE_FLAG): this, so that we use AC_LINK_IFELSE to check the compiler (and its std lib) instead of AC_COMPILE_IFELSE.
* build: strengthen the C++ standard flag testAkim Demaille2018-09-181-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | On the CI, we have this spurious failure with clang 3.9 with -std=c++17: In file included from list.y:23: In file included from /usr/include/c++/4.8/iostream:39: In file included from /usr/include/c++/4.8/ostream:38: In file included from /usr/include/c++/4.8/ios:42: In file included from /usr/include/c++/4.8/bits/ios_base.h:41: In file included from /usr/include/c++/4.8/bits/locale_classes.h:40: In file included from /usr/include/c++/4.8/string:52: In file included from /usr/include/c++/4.8/bits/basic_string.h:2815: In file included from /usr/include/c++/4.8/ext/string_conversions.h:43: /usr/include/c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace using ::gets; ~~^ This shows that our test, based on gl_WARN_ADD, is a joke. We have to really check for at least a bit of C++. * m4/ax_check_compile_flag.m4, m4/bison-cxx-std.m4: New. * configure.ac: Use them to make sure the compiler actually works.
* tests: run the C++ tests on all the available standardsAkim Demaille2018-09-131-0/+7
| | | | | | | | | | | This is much of course more efficient than in the matrix of the CI (or on our own machines), but a bit more tedious. * configure.ac (CXX03_CXXFLAGS, CXX11_CXXFLAGS, CXX14_CXXFLAGS) (CXX17_CXXFLAGS, CXX2A_CXXFLAGS, STDCXX_FLAGS): New. * tests/atlocal.in: Receive them. * tests/local.at (AT_FOR_EACH_CXX): New. * tests/c++.at: Use AT_FOR_EACH_CXX.
* lalr1.cc: support move semanticsAkim Demaille2018-09-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modern C++ (i.e., C++11 and later) introduced "move only" types: types such as std::unique_ptr<T> that can never be duplicated. They must never be copied (by assignments and constructors), they must be "moved". The implementation of lalr1.cc used to copy symbols (including their semantic values). This commit ensures that values are only moved in modern C++, yet remain compatible with C++98/C++03. Suggested by Frank Heckenbach, who provided a full implementation on top of C++17's std::variant. See http://lists.gnu.org/archive/html/bug-bison/2018-03/msg00002.html, and https://lists.gnu.org/archive/html/bison-patches/2018-04/msg00002.html. Symbols (terminal/non terminal) are handled by several functions that used to take const-refs, which resulted eventually in a copy pushed on the stack. With modern C++ (C++11 and later) the callers must use std::move, and the callees must take their arguments as rvalue refs (foo&&). In order to avoid duplicating these functions to support both legacy C++ and modern C++, let's introduce macros (YY_MOVE, YY_RVREF, etc.) that rely on copy-semantics for C++98/03, and move-semantics for modern C++. That's easy for inner types, when the parser's functions pass arguments to each other. Functions facing the user (make_NUMBER, make_STRING, etc.) should support both rvalue-refs (for instance to support move-only types: make_INT (std::make_unique<int> (1))), and lvalue-refs (so that we can pass a variable: make_INT (my_int)). To avoid the multiplication of the signatures (there is also the location), let's take the argument by value. See: https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00024.html. * data/c++.m4 (b4_cxx_portability): New. (basic_symbol): In C++11, replace copy-ctors with move-ctors. In C++11, replace copies with moves. * data/lalr1.cc (stack_symbol_type, yypush_): Likewise. Use YY_MOVE to avoid useless copies. * data/variant.hh (variant): Support move-semantics. (make_SYMBOL): In C++11, in order to support both read-only lvalues, and rvalues, take the argument as a copy. * data/stack.hh (yypush_): Use rvalue-refs in C++11. * tests/c++.at: Use move semantics. * tests/headers.at: Adjust to the new macros (YY_MOVE, etc.). * configure.ac (CXX98_CXXFLAGS, CXX11_CXXFLAGS, CXX14_CXXFLAGS) (CXX17_CXXFLAGS, ENABLE_CXX11): New. * tests/atlocal.in: Receive them. * examples/variant.yy: Don't define things in std. * examples/variant-11.test, examples/variant-11.yy: New. Check the support of move-only types. * examples/README, examples/local.mk: Adjust.
* build: use -fparse-all-comments with -WdocumentationAkim Demaille2018-09-101-1/+2
| | | | | | Clang checks only /** ... */ comments without this flag. * configure.ac (warn_common): Also check -fparse-all-comments.
* configure.ac: fix definition of NO_EXCEPTIONS_CXXFLAGSAkim Demaille2018-09-091-1/+4
| | | | | * configure.ac: Always define it, not just when --enable-gcc-warnings is passed.
* configure: reveal the name of the Valgrind suppression file we useAkim Demaille2018-09-081-0/+2
| | | | | * configure.ac: here. * build-aux/Linux.valgrind (libstdcxx_init): New.
* tests: fix variable naming conventionAkim Demaille2018-09-061-1/+1
| | | | | | | | | Most of our variables for C++ flags are named FOO_CXXFLAGS, not CXXFLAGS_FOO. * configure.ac, tests/atlocal.in, tests/calc.at (NO_EXCEPTIONS_CXXFLAGS): Rename as... (CXXFLAGS_NO_EXCEPTIONS): this.
* tests: fix maintainer-check-g++ make recipeAkim Demaille2018-09-061-0/+2
| | | | | | | | Clang++ issues warnings when it's used to compile C. This make target is precisely checking whether we can do that. * configure.ac (NO_DEPRECATED_CXXFLAGS): New. * tests/atlocal.in: Use it.
* lalr1.cc: support compilation with disabled support for exceptionsAkim Demaille2018-08-191-0/+1
| | | | | | | | | | | | | | | | Reported by Brooks Moses <bmoses@google.com> http://lists.gnu.org/archive/html/bison-patches/2018-02/msg00000.html * data/lalr1.cc (YY_EXCEPTIONS): New. Use it to disable try/catch clauses. * doc/bison.texi (C++ Parser Interface): Document it. * configure.ac (CXXFLAGS_NO_EXCEPTIONS): New. * tests/atlocal.in: Receive it. * tests/local.at (AT_FULL_COMPILE, AT_LANG_COMPILE): Accept a new argument, extra compiler flags. * tests/calc.at: Run the C++ calculator with exception support disabled.
* C++: fix -Wdeprecated warningsAkim Demaille2018-05-271-1/+1
| | | | | | | | | | | | | | | | | | | | For instance on test 99: In file included from @@.cc:56: @@.hh:409:26: error: definition of implicit copy constructor for 'stack_symbol_type' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated] stack_symbol_type& operator= (const stack_symbol_type& that); ^ Reported by Derek Clegg. https://lists.gnu.org/archive/html/bison-patches/2018-05/msg00036.html * configure.ac (warn_tests): Add -Wdeprecated. * data/lalr1.cc (stack_symbol_type): Add an explicit copy ctor. We cannot rely on the explicit default implementation (`= default`) as we support C++ 98.
* Update copyright yearsAkim Demaille2018-05-121-2/+2
| | | | Run `make update-copyright`.
* Avoid compiler warningsAkim Demaille2018-05-121-1/+1
| | | | | | | | | | | | | | At least GCC 7.3, with -O1 or -O2 (but not -O0 or -O3) generates warnings with -Wnull-dereference when using yyformat: it fails to see yyformat cannot be null. Reported by Frank Heckenbach, https://savannah.gnu.org/patch/?9620. * configure.ac: Use -Wnull-dereference if supported. * data/glr.c, data/lalr1.cc, data/yacc.c: Define yyformat in such a way that GCC cannot not see that yyformat is defined. Using `default: abort();` also addresses the issue, but forces the inclusion of `stdlib.h`, which we avoid.
* tests: beware that clang warns about "#define private public"Akim Demaille2015-08-121-1/+6
| | | | | | | We use this trick to write some test about internal details. But since we use -Werror, clang++ 3.6 dies issueing a warning about it. * configure.ac (warn_tests): Disable this warning.