diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2021-08-12 08:31:38 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2021-08-12 09:07:36 +0200 |
commit | 15ba35a51bee27c8b7d4c5ef47673de4db6528af (patch) | |
tree | c442d772351420a0591d11f8e4c0ca03ac7f46f5 /m4 | |
parent | db66acc5d0f433a32d49eb840bd319d25b3a657f (diff) | |
download | bison-15ba35a51bee27c8b7d4c5ef47673de4db6528af.tar.gz |
build: check for C++ 20 and 2b
C++20 is released.
* configure.ac, m4/bison-cxx-std.m4, tests/atlocal.in,
* tests/local.at: Replace 2a with 20, and add support for 2b.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/bison-cxx-std.m4 | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/m4/bison-cxx-std.m4 b/m4/bison-cxx-std.m4 index 6f6717ae..65d59cc7 100644 --- a/m4/bison-cxx-std.m4 +++ b/m4/bison-cxx-std.m4 @@ -7,16 +7,17 @@ # with or without modifications, as long as this notice is preserved. m4_define([_BISON_CXXSTD_98_snippet], -[#include <vector> +[[#include <cassert> +#include <vector> typedef std::vector<int> ints; -]) +]]) m4_define([_BISON_CXXSTD_03_snippet], []) m4_define([_BISON_CXXSTD_11_snippet], -[#include <algorithm> +[[#include <algorithm> #include <memory> #include <set> #include <sstream> @@ -66,10 +67,10 @@ m4_define([_BISON_CXXSTD_11_snippet], // GCC 4.8.2 on Solaris 11.3 does not support to_string. auto e = std::to_string(42); -]) +]]) m4_define([_BISON_CXXSTD_14_snippet], -[ // C++14 +[[ // C++14 void mismatch() { using ints = std::vector<int>; @@ -78,20 +79,24 @@ m4_define([_BISON_CXXSTD_14_snippet], std::mismatch(std::begin(v1), std::end(v1), std::begin(v2), std::end(v2)); } -]) +]]) m4_define([_BISON_CXXSTD_17_snippet], -[ // C++17 +[[ // C++17 namespace ns1::ns2::ns3 {} #include <optional> auto opt_string = std::optional<std::string>{}; auto out = std::ostringstream{}; -]) +]]) -m4_define([_BISON_CXXSTD_2A_snippet], -[ // C++2A -]) +m4_define([_BISON_CXXSTD_20_snippet], +[[ // C++20 +]]) + +m4_define([_BISON_CXXSTD_2B_snippet], +[[ // C++2B +]]) m4_define([_BISON_CXXSTD_testbody(98)], @@ -129,14 +134,25 @@ _BISON_CXXSTD_14_snippet _BISON_CXXSTD_17_snippet ])]) -m4_define([_BISON_CXXSTD_testbody(2a)], +m4_define([_BISON_CXXSTD_testbody(20)], +[AC_LANG_PROGRAM([ +_BISON_CXXSTD_98_snippet +_BISON_CXXSTD_03_snippet +_BISON_CXXSTD_11_snippet +_BISON_CXXSTD_14_snippet +_BISON_CXXSTD_17_snippet +_BISON_CXXSTD_20_snippet +])]) + +m4_define([_BISON_CXXSTD_testbody(2b)], [AC_LANG_PROGRAM([ _BISON_CXXSTD_98_snippet _BISON_CXXSTD_03_snippet _BISON_CXXSTD_11_snippet _BISON_CXXSTD_14_snippet _BISON_CXXSTD_17_snippet -_BISON_CXXSTD_2A_snippet +_BISON_CXXSTD_20_snippet +_BISON_CXXSTD_2B_snippet ])]) @@ -148,7 +164,7 @@ m4_define([_BISON_CXXSTD_testbody], # BISON_CXXSTD(STD) # ----------------- -# Check whether the C++ compiler support STD (11, 98, 2a, etc.). +# Check whether the C++ compiler support STD (11, 98, 2b, etc.). # If it does, AC_SUBST 'CXX<STD>_CXXFLAGS' to the corresponding flags. AC_DEFUN([BISON_CXXSTD], [AC_REQUIRE([AC_PROG_CXX]) |