tests: use -fno-strict-aliasing with variants
authorAkim Demaille <akim@lrde.epita.fr>
Mon, 26 Nov 2012 09:42:49 +0000 (10:42 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Mon, 26 Nov 2012 10:00:05 +0000 (11:00 +0100)
Reported by Théophile Ranquet.

* configure.ac (NO_STRICT_ALIAS_CXXFLAGS): New.
* tests/c++.at, tests/atlocal.in, examples/local.mk: Use it.

configure.ac
examples/local.mk
tests/atlocal.in
tests/c++.at

index aec681a..a4eb373 100644 (file)
@@ -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
index 94a3167..3a6fcf0 100644 (file)
 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.  ##
 ## ------------ ##
index 649e074..a545e5e 100644 (file)
@@ -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@'
 
index f5e5f46..08040d6 100644 (file)
@@ -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)
 ])