diff --git a/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp b/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp index 7e96a3757f..19f2fe8d32 100644 --- a/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp +++ b/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp @@ -102,9 +102,17 @@ namespace boost { namespace spirit { namespace qi { namespace detail { if (Radix <= 10) return (ch >= '0' && ch <= static_cast('0' + Radix -1)); +#ifdef BOOST_GCC + // GCC warns the condition, 'always false', if Radix is 10. +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wlogical-op" +#endif return (ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= static_cast('a' + Radix -10 -1)) || (ch >= 'A' && ch <= static_cast('A' + Radix -10 -1)); +#ifdef BOOST_GCC +# pragma GCC diagnostic pop +#endif } template