X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c21493b89f5f5dd49e1f46d311326d5d4f49f8a4..ea9e670d728ac659e139434de31ea9306ecdd117:/m4/cxx.m4 diff --git a/m4/cxx.m4 b/m4/cxx.m4 index 695476d1..f9f06092 100644 --- a/m4/cxx.m4 +++ b/m4/cxx.m4 @@ -1,11 +1,11 @@ # -*- Autoconf -*- # Sanity-test a C++ compiler. # -# Copyright (C) 2004, 2006 Free Software Foundation, Inc. +# Copyright (C) 2004, 2006, 2009-2012 Free Software Foundation, Inc. # -# This program is free software; you can redistribute it and/or modify +# 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 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, @@ -14,9 +14,7 @@ # 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 +# along with this program. If not, see <http://www.gnu.org/licenses/>. # Written by Paul Eggert. @@ -25,16 +23,29 @@ AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COMPILER], AC_CACHE_CHECK([whether $CXX builds executables that work], bison_cv_cxx_works, [AC_LANG_PUSH([C++]) - AC_RUN_IFELSE( + bison_cv_cxx_works=no + AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [#include <cstdlib> - #include <iostream> - using namespace std;], + [#include <cstdlib> + #include <iostream> + #include <map> + #include <string> + using namespace std;], [std::cerr << ""; - cout << "";])], - [bison_cv_cxx_works=yes], - [bison_cv_cxx_works=no], - [bison_cv_cxx_works=cross]) + cout << ""; + typedef std::pair<unsigned int, int> uipair; + std::map<unsigned int, int> m; + std::map<unsigned int, int>::iterator i; + m.insert (uipair (4, -4)); + for (i = m.begin (); i != m.end (); ++i) + if (i->first != 4) + return 1;])], + [AS_IF([AC_TRY_COMMAND([$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD])], + [AS_IF([test "$cross_compiling" = yes], + [bison_cv_cxx_works=cross], + [AS_IF([AC_TRY_COMMAND(./conftest$ac_exeext)], + [bison_cv_cxx_works=yes])])]) + rm -f conftest$ac_exeext]) AC_LANG_POP([C++])]) case $bison_cv_cxx_works in @@ -47,3 +58,12 @@ AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COMPILER], AC_SUBST([BISON_CXX_WORKS]) AM_CONDITIONAL(BISON_CXX_WORKS, test $bison_cv_cxx_works = yes) ]) + +# BISON_CXX_COMPILER_POSIXLY_CORRECT +# ---------------------------------- +# Whether the C++ compiler supports -g in POSIXLY_CORRECT mode. +AC_DEFUN([BISON_CXX_COMPILER_POSIXLY_CORRECT], +[AC_LANG_PUSH([C++]) +BISON_LANG_COMPILER_POSIXLY_CORRECT +AC_LANG_POP([C++]) +])