Re: [Boost-bugs] [Boost C++ Libraries] #8367: chrono does not compile with clang from XCode 4.5.2 with -std=c++11 -stdlib=libc++ and -arch armv7

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #8367: chrono does not compile with clang from XCode 4.5.2 with -std=c++11 -stdlib=libc++ and -arch armv7
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-04-08 17:44:33


#8367: chrono does not compile with clang from XCode 4.5.2 with -std=c++11
-stdlib=libc++ and -arch armv7
--------------------------------------------------------------+-------------
  Reporter: Franz Detro <franz.detro@…> | Owner: viboes
      Type: Bugs | Status: assigned
 Milestone: To Be Determined | Component: chrono
   Version: Boost 1.53.0 | Severity: Showstopper
Resolution: | Keywords:
--------------------------------------------------------------+-------------
Changes (by viboes):

  * status: new => assigned


Old description:

> When trying to compile chrono with the Xcode 4.5.2 clang compiler on
> MacOS X for iOS with
>
> -std=c++11 -stdlib=libc++ and -arch armv7
>
> one gets compile errors. Compile log attached.

New description:

 When trying to compile chrono with the Xcode 4.5.2 clang compiler on MacOS
 X for iOS with

 -std=c++11 -stdlib=libc++ and -arch armv7

 one gets compile errors. Compile log attached.

 I'm using the following configuration and everything is right.

 {{{
 using clang : 3.2 : /Users/viboes/clang/clang+llvm-3.2-x86_64-apple-
 darwin11/bin/clang++ ;
 using clang : 3.2xl : /Users/viboes/clang/clang+llvm-3.2-x86_64-apple-
 darwin11/bin/clang++ : <cxxflags>"-std=c++11 -stdlib=libc++"
 <linkflags>"-std=c++11 -stdlib=libc++" ;
 }}}

--
Comment:
 The error appears when the standard library doesn't uses constexpr for
 max()

 {{{
 41      ./boost/chrono/duration.hpp:353:49: error: constexpr function
 never produces a constant expression
 42              static BOOST_CHRONO_LIB_CONSTEXPR float lowest()
 BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW
 43                                                      ^
 44      ./boost/chrono/duration.hpp:355:21: note: non-constexpr function
 'max' cannot be used in a constant expression
 45                  return -(std::numeric_limits<float>::max) ();
 46                          ^
 }}}

 BOOST_CHRONO_LIB_CONSTEXPR is defined as follows

 {{{
 #if defined( BOOST_NO_CXX11_NUMERIC_LIMITS )
 #define BOOST_CHRONO_LIB_CONSTEXPR
 #elif defined(_LIBCPP_VERSION) && _LIBCPP_VERSION < 1002
   #define BOOST_CHRONO_LIB_CONSTEXPR
 #else
   #define BOOST_CHRONO_LIB_CONSTEXPR BOOST_CONSTEXPR
 #endif
 }}}


 Could you tell me what is the value of BOOST_NO_CXX11_NUMERIC_LIMITS and
 _LIBCPP_VERSION on the environment you get the error?
-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/8367#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 : 2017-02-16 18:50:12 UTC