[Boost-bugs] [Boost C++ Libraries] #5519: Error C4235 in msvc_rounding_control.hpp (numeric.interval_lib.detail)

Subject: [Boost-bugs] [Boost C++ Libraries] #5519: Error C4235 in msvc_rounding_control.hpp (numeric.interval_lib.detail)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-05-05 07:32:21


#5519: Error C4235 in msvc_rounding_control.hpp (numeric.interval_lib.detail)
-----------------------------------+----------------------------------------
 Reporter: hajokirchhoff | Owner: jhunold
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: None
  Version: Boost 1.46.1 | Severity: Problem
 Keywords: rint numeric interval |
-----------------------------------+----------------------------------------
 The code tests WIN64 when it should test _WIN64.

 WIN64 is not a Microsoft standard preprocessor macro. _WIN64 is correct
 (see Microsoft documentation http://msdn.microsoft.com/en-
 us/library/b0084kay%28VS.80%29.aspx)

 The effect is that the inline _asm function gets compiled when using the
 64 Bit MSVC Compiler, which results in a C4235 error (_asm is not
 supported).

 Fix: Use _WIN64 instead of WIN64 to test for 64 Bit MSVC
 {{{
 #if BOOST_MSVC < 1400 || defined(WIN64)
 extern "C" { double rint(double); }
 #else
 inline double rint(double x)
 {
 _asm FLD [x] ;
 _asm FRNDINT ;
 //_asm RET ;
 }
 #endif

 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5519>
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 : 2017-02-16 18:50:06 UTC