From 8ec3110a9ed4e4d26327bbccfc25278c374fd99a Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sat, 24 Mar 2012 14:11:06 +0100 Subject: [PATCH] tests: beware of -pedantic on large #line numbers. * tests/local.at (AT_TEST_TABLES_AND_PARSE): Don't pass -pedantic when compiling large canonical-LR parsers. Reported by Tys Lefering. http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00025.html --- tests/local.at | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/local.at b/tests/local.at index 2e975d0a..ff39787c 100644 --- a/tests/local.at +++ b/tests/local.at @@ -615,6 +615,17 @@ m4_if(m4_index(m4_quote($3), [last-state]), -1, $9 +# Canonical LR generates very large tables, resulting in very long +# files with #line directives that may overflow what the standards +# (C90 and C++98) guarantee: 32767. In that case, GCC's -pedantic +# will issue an error. +# +# There is no "" around `wc` since some indent the result. +m4_bmatch([$4], [%define lr.type canonical-lr], +[if test 32767 -lt `wc -l < input.c`; then + CFLAGS=`echo " $CFLAGS " | sed -e 's/ -pedantic //'` + CXXFLAGS=`echo " $CXXFLAGS " | sed -e 's/ -pedantic //'` +fi]) AT_COMPILE([[input]]) AT_PARSER_CHECK([[./input]], -- 2.47.2