From 1217688141e33e03112330a24ff352d9263ef7bc Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 30 Jan 2013 15:28:08 +0100 Subject: [PATCH] build: please Clang++ 3.2+ on Flex scanners Clang++, with -Wall, rejects code generated by Flex (for C scanners): CXX examples/calc++/examples_calc___calc__-calc++-scanner.o In file included from examples/calc++/calc++-scanner.cc:1: error: implicit conversion of NULL constant to 'bool' [-Werror,-Wnull-conversion] if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)] : __null) ) { ~ ^~~~~~ false * configure.ac (WARN_NO_NULL_CONVERSION_CXXFLAGS): Compute it. * examples/calc++/local.mk (examples_calc___calc___CXXFLAGS): Use it. --- configure.ac | 2 ++ examples/calc++/local.mk | 2 ++ 2 files changed, 4 insertions(+) diff --git a/configure.ac b/configure.ac index 76a0ecf9..289b2995 100644 --- a/configure.ac +++ b/configure.ac @@ -133,6 +133,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]) + # Clang++ 3.2+ reject C code generated by Flex. + gl_WARN_ADD([-Wno-null-conversion], [WARN_NO_NULL_CONVERSION_CXXFLAGS]) # Variants break strict aliasing analysis. gl_WARN_ADD([-fno-strict-aliasing], [NO_STRICT_ALIAS_CXXFLAGS]) CXXFLAGS=$save_CXXFLAGS diff --git a/examples/calc++/local.mk b/examples/calc++/local.mk index c0cb5e81..6eb31f89 100644 --- a/examples/calc++/local.mk +++ b/examples/calc++/local.mk @@ -69,5 +69,7 @@ nodist_examples_calc___calc___SOURCES = \ $(calc_sources) examples_calc___calc___CPPFLAGS = -I$(top_builddir)/examples/calc++ +examples_calc___calc___CXXFLAGS = \ + $(AM_CXXFLAGS) $(WARN_NO_NULL_CONVERSION_CXXFLAGS) dist_TESTS += examples/calc++/calc++.test endif -- 2.50.0