mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 09:43:03 +00:00
doc: work around warnings when Flex C output is compiled in C++
* doc/bison.texi (calc++/scanner.ll): here. While at it, clarify clang vs. warnings.
This commit is contained in:
@@ -12247,17 +12247,27 @@ then the parser's to get the set of defined tokens.
|
|||||||
@comment file: calc++/scanner.ll
|
@comment file: calc++/scanner.ll
|
||||||
@example
|
@example
|
||||||
%@{
|
%@{
|
||||||
|
#if defined __clang__
|
||||||
|
# define CLANG_VERSION (__clang_major__ * 100 + __clang_minor__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang and ICC like to pretend they are GCC.
|
||||||
|
#if defined __GNUC__ && !defined __clang__ && !defined __ICC
|
||||||
|
# define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Pacify warnings in yy_init_buffer (observed with Flex 2.6.4)
|
// Pacify warnings in yy_init_buffer (observed with Flex 2.6.4)
|
||||||
// and GCC 6.4.0, 7.3.0.
|
// and GCC 6.4.0, 7.3.0 with -O3.
|
||||||
#if defined __GNUC__ && !defined __clang__ && 6 <= __GNUC__
|
#if defined GCC_VERSION && 600 <= GCC_VERSION
|
||||||
# pragma GCC diagnostic ignored "-Wnull-dereference"
|
# pragma GCC diagnostic ignored "-Wnull-dereference"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// This example uses Flex's C backend, yet compiles it as C++.
|
// This example uses Flex's C backend, yet compiles it as C++.
|
||||||
// So expect warnings about C style casts and NULL.
|
// So expect warnings about C style casts and NULL.
|
||||||
#if defined __clang__
|
#if defined CLANG_VERSION && 500 <= CLANG_VERSION
|
||||||
|
# pragma clang diagnostic ignored "-Wold-style-cast"
|
||||||
# pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
|
# pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
|
||||||
#elif defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
#elif defined GCC_VERSION && 407 <= GCC_VERSION
|
||||||
# pragma GCC diagnostic ignored "-Wold-style-cast"
|
# pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||||
# pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
|
# pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
|
||||||
#endif
|
#endif
|
||||||
@@ -12272,27 +12282,27 @@ then the parser's to get the set of defined tokens.
|
|||||||
// * @param line_number
|
// * @param line_number
|
||||||
// ~~~~~~~~~~~~~~~~~^
|
// ~~~~~~~~~~~~~~~~~^
|
||||||
// 1 error generated.
|
// 1 error generated.
|
||||||
#if FLEX_VERSION < 206 && defined __clang__
|
#if FLEX_VERSION < 206 && defined CLANG_VERSION
|
||||||
# pragma clang diagnostic ignored "-Wdocumentation"
|
# pragma clang diagnostic ignored "-Wdocumentation"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Old versions of Flex (2.5.35) use 'register'. Warnings introduced in
|
// Old versions of Flex (2.5.35) use 'register'. Warnings introduced in
|
||||||
// GCC 7 and Clang 6.
|
// GCC 7 and Clang 6.
|
||||||
#if FLEX_VERSION < 206
|
#if FLEX_VERSION < 206
|
||||||
# if defined __clang__ && 6 <= __clang_major__
|
# if defined CLANG_VERSION && 600 <= CLANG_VERSION
|
||||||
# pragma clang diagnostic ignored "-Wdeprecated-register"
|
# pragma clang diagnostic ignored "-Wdeprecated-register"
|
||||||
# elif defined __GNUC__ && 7 <= __GNUC__
|
# elif defined GCC_VERSION && 700 <= GCC_VERSION
|
||||||
# pragma GCC diagnostic ignored "-Wregister"
|
# pragma GCC diagnostic ignored "-Wregister"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if FLEX_VERSION < 206
|
#if FLEX_VERSION < 206
|
||||||
# if defined __clang__
|
# if defined CLANG_VERSION
|
||||||
# pragma clang diagnostic ignored "-Wconversion"
|
# pragma clang diagnostic ignored "-Wconversion"
|
||||||
# pragma clang diagnostic ignored "-Wdocumentation"
|
# pragma clang diagnostic ignored "-Wdocumentation"
|
||||||
# pragma clang diagnostic ignored "-Wshorten-64-to-32"
|
# pragma clang diagnostic ignored "-Wshorten-64-to-32"
|
||||||
# pragma clang diagnostic ignored "-Wsign-conversion"
|
# pragma clang diagnostic ignored "-Wsign-conversion"
|
||||||
# elif defined __GNUC__
|
# elif defined GCC_VERSION
|
||||||
# pragma GCC diagnostic ignored "-Wconversion"
|
# pragma GCC diagnostic ignored "-Wconversion"
|
||||||
# pragma GCC diagnostic ignored "-Wsign-conversion"
|
# pragma GCC diagnostic ignored "-Wsign-conversion"
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
Reference in New Issue
Block a user