From: Akim Demaille Date: Mon, 26 Nov 2012 09:42:49 +0000 (+0100) Subject: tests: use -fno-strict-aliasing with variants X-Git-Tag: v2.7.90~268 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/2f130f199a5510f6aa7ac6199e34885242411039 tests: use -fno-strict-aliasing with variants Reported by Théophile Ranquet. * configure.ac (NO_STRICT_ALIAS_CXXFLAGS): New. * tests/c++.at, tests/atlocal.in, examples/local.mk: Use it. --- diff --git a/configure.ac b/configure.ac index aec681ad..a4eb373e 100644 --- a/configure.ac +++ b/configure.ac @@ -111,6 +111,8 @@ if test "$enable_gcc_warnings" = yes; then # Warnings for the test suite only. gl_WARN_ADD([-Wundef], [WARN_CXXFLAGS_TEST]) gl_WARN_ADD([-pedantic], [WARN_CXXFLAGS_TEST]) + # Variants break strict aliasing analysis. + gl_WARN_ADD([-fno-strict-aliasing], [NO_STRICT_ALIAS_CXXFLAGS]) CXXFLAGS=$save_CXXFLAGS AC_LANG_POP([C++]) fi diff --git a/examples/local.mk b/examples/local.mk index 94a31674..3a6fcf0d 100644 --- a/examples/local.mk +++ b/examples/local.mk @@ -16,6 +16,10 @@ dist_noinst_SCRIPTS = examples/extexi examples/test TEST_LOG_COMPILER = $(top_srcdir)/examples/test +AM_CXXFLAGS = \ + $(NO_STRICT_ALIAS_CXXFLAGS) \ + $(WARN_CXXFLAGS) $(WARN_CXXFLAGS_TEST) $(WERROR_CXXFLAGS) + ## ------------ ## ## Extracting. ## ## ------------ ## diff --git a/tests/atlocal.in b/tests/atlocal.in index 649e0743..a545e5e2 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -38,6 +38,9 @@ NO_WERROR_CXXFLAGS='@CXXFLAGS@ @WARN_CXXFLAGS@ @WARN_CXXFLAGS_TEST@' CFLAGS="$NO_WERROR_CFLAGS @WERROR_CFLAGS@" CXXFLAGS="$NO_WERROR_CXXFLAGS @WERROR_CXXFLAGS@" +# C++ variants break strict aliasing analysis. +NO_STRICT_ALIAS_CXXFLAGS='@NO_STRICT_ALIAS_CXXFLAGS@' + # If 'exit 77'; skip all C++ tests; otherwise ':'. BISON_CXX_WORKS='@BISON_CXX_WORKS@' diff --git a/tests/c++.at b/tests/c++.at index f5e5f463..08040d6e 100644 --- a/tests/c++.at +++ b/tests/c++.at @@ -176,7 +176,7 @@ main () ]]) AT_BISON_CHECK([-o list.cc list.yy]) -AT_COMPILE_CXX([list]) +AT_COMPILE_CXX([list], [$NO_STRICT_ALIAS_CXXFLAGS list.cc]) AT_PARSER_CHECK([./list], 0, [(0, 1, 2, 4) ])