From 5010af94d0d1a8aada976972b849184329c9274a Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sat, 18 Aug 2018 11:27:24 +0200 Subject: [PATCH] portability: don't use _Pragma with ICC ICC defines __GNUC__ [1], but does not support GCC's _Pragma for diagnostics. As a matter of fact, I believe it does not support _Pragma at all (only #pragma) [2]. Reported by Maxim Prohorenko. https://savannah.gnu.org/support/index.php?108339 [1] https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-gcc-compatibility-and-interoperability [2] https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-pragmas * data/c.m4 (YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN): Exclude ICC from the club. --- NEWS | 5 +++++ THANKS | 1 + data/c.m4 | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 760f9399..cd5d6ae6 100644 --- a/NEWS +++ b/NEWS @@ -92,6 +92,11 @@ GNU Bison NEWS %printer/%destructor, which resulted in compiler errors if there are backslashes or double-quotes in the grammar file name. +*** Portability on ICC + + The Intel compiler claims compatibility with GCC, yet rejects its _Pragma. + Generated parsers now work around this. + * Noteworthy changes in release 3.0.5 (2018-05-27) [stable] ** Bug fixes diff --git a/THANKS b/THANKS index 9cf3ef22..3a68d2ef 100644 --- a/THANKS +++ b/THANKS @@ -89,6 +89,7 @@ Martin Mokrejs mmokrejs@natur.cuni.cz Martin Nylin martin.nylin@linuxmail.org Matt Kraai kraai@alumni.cmu.edu Matt Rosing rosing@peakfive.com +Maxim Prohorenko Maxim.Prohorenko@gmail.com Michael Catanzaro mcatanzaro@gnome.org Michael Felt mamfelt@gmail.com Michael Hayes m.hayes@elec.canterbury.ac.nz diff --git a/data/c.m4 b/data/c.m4 index c28ffc61..346b8fd3 100644 --- a/data/c.m4 +++ b/data/c.m4 @@ -242,7 +242,7 @@ m4_define([b4_attribute_define], # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \