diff configure.ac @ 21023:ec532a439c6f

rework method of disabling warnings from GCC * configure.ac: Check for GCC's #pragma GCC diagnostic feature. * libinterp/module.mk, libinterp/corefcn/module.mk, libinterp/parse-tree/module.mk: Eliminate separate libraries for TeX and Octave parsers. * oct-tex-lexer.in.ll, oct-tex-parser.in.yy, lex.ll, oct-parse.in.yy: Use GCC #pragma GCC diagnostic feature to more selectively disable warnings in generated code. * libgui/module.mk (rcc-command): Use GCC #pragma GCC diagnostic feature to more selectively disable warnings in generated code.
author John W. Eaton <jwe@octave.org>
date Thu, 31 Dec 2015 17:06:36 -0500
parents e429ddca0d51
children c1df36373272
line wrap: on
line diff
--- a/configure.ac	Thu Dec 31 13:45:43 2015 -0500
+++ b/configure.ac	Thu Dec 31 17:06:36 2015 -0500
@@ -2555,6 +2555,27 @@
 AC_SUBST(WARN_CXXFLAGS)
 AC_SUBST(WARN_LDFLAGS)
 
+## Also check for the GCC-specific pragmas for controlling warnings.
+
+AC_CACHE_CHECK([for @%:@pragma GCC diagnostic push/pop/ignore],
+  [octave_cv_gcc_has_pragma_GCC_diagnostic],
+  [AC_LANG_PUSH(C++)
+   AC_TRY_COMPILE([], [
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignore "-Wold-style-cast"
+  int three = (int) 3.1415926;
+#pragma GCC diagnostic pop
+    ],
+    [octave_cv_gcc_has_pragma_GCC_diagnostic=yes],
+    [octave_cv_gcc_has_pragma_GCC_diagnostic=no])
+   AC_LANG_POP(C++)],
+  ])
+
+if test $octave_cv_gcc_has_pragma_GCC_diagnostic = yes; then
+  AC_DEFINE(HAVE_PRAGMA_GCC_DIAGNOSTIC, 1,
+   [define if GCC supports @%:@pragma GCC diagnostic ...])
+fi
+
 ### Check for Java.
 
 build_java=yes