Re: [Boost-bugs] [Boost C++ Libraries] #13508: Errors compiling float128.h on windows with icc 17.0 and MSVC 14.11 toolchain

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #13508: Errors compiling float128.h on windows with icc 17.0 and MSVC 14.11 toolchain
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-04-02 17:19:00


#13508: Errors compiling float128.h on windows with icc 17.0 and MSVC 14.11
toolchain
------------------------------------------------+--------------------------
  Reporter: Metodi Nikolov <metodi.nikolov@…> | Owner: John Maddock
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component:
                                                | multiprecision
   Version: Boost 1.66.0 | Severity: Problem
Resolution: | Keywords:
------------------------------------------------+--------------------------

Comment (by John Maddock):

 Unfortunately, that configuration has dropped off our testing radar... can
 you tell me if the patch below fixes things?

 {{{
  include/boost/multiprecision/float128.hpp | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

 diff --git a/include/boost/multiprecision/float128.hpp
 b/include/boost/multiprecision/float128.hpp
 index a729523..095634f 100644
 --- a/include/boost/multiprecision/float128.hpp
 +++ b/include/boost/multiprecision/float128.hpp
 @@ -482,15 +482,16 @@ inline void eval_atan2(float128_backend& result,
 const float128_backend& a, cons
  {
     result.value() = atan2q(a.value(), b.value());
  }
 +#ifndef BOOST_MP_USE_QUAD
  inline void eval_multiply_add(float128_backend& result, const
 float128_backend& a, const float128_backend& b, const float128_backend& c)
  {
     result.value() = fmaq(a.value(), b.value(), c.value());
  }
 -
  inline int eval_signbit BOOST_PREVENT_MACRO_SUBSTITUTION(const
 float128_backend& arg)
  {
     return ::signbitq(arg.value());
  }
 +#endif

  inline std::size_t hash_value(const float128_backend& val)
  {
 @@ -550,6 +551,7 @@ inline std::size_t hash_value(const float128_backend&
 val)
        return log1pq(arg.backend().value());
     }

 +#ifndef BOOST_MP_USE_QUAD
     template <multiprecision::expression_template_option
 ExpressionTemplates>
     inline
 boost::multiprecision::number<boost::multiprecision::backends::float128_backend,
 ExpressionTemplates> copysign BOOST_PREVENT_MACRO_SUBSTITUTION(const
 boost::multiprecision::number<boost::multiprecision::backends::float128_backend,
 ExpressionTemplates>& a, const
 boost::multiprecision::number<boost::multiprecision::backends::float128_backend,
 ExpressionTemplates>& b)
     {
 @@ -564,6 +566,7 @@ inline std::size_t hash_value(const float128_backend&
 val)
     {
        result.value() = remquoq(a.value(), b.value(), pi);
     }
 +#endif

  } // namespace multiprecision

 }}}

-- 
Ticket URL: <https://svn.boost.org/trac10/ticket/13508#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2018-04-02 17:25:54 UTC