Opened 10 years ago

Closed 10 years ago

#7183 closed Bugs (fixed)

math::isinf compilation failure on FBSD

Reported by: Antony Polukhin Owned by: John Maddock
Milestone: To Be Determined Component: math
Version: Boost Development Trunk Severity: Regression
Keywords: bsd isinf math Cc: antoshkka@…

Description

Compilation of bool boost::math::isinf(T) [with T = long double] failes under FBSD x32 and FBSD x64 platforms (compiler GCC-4.2.1, boost trunk):

../boost/math/tools/promotion.hpp: In instantiation of 'boost::math::tools::promote_args<long double, float, float, float, float, float>':
../boost/math/special_functions/fpclassify.hpp:454:   instantiated from 'bool boost::math::isinf(T) [with T = long double]'
../boost/lexical_cast.hpp:864:   instantiated from 'bool boost::detail::put_inf_nan_impl(CharT*, CharT*&, const T&, const CharT*, const CharT*) [with CharT = char, T = long double]'
../boost/lexical_cast.hpp:943:   instantiated from 'bool boost::detail::put_inf_nan(CharT*, CharT*&, const T&) [with CharT = char, T = long double]'
../boost/lexical_cast.hpp:1377:   instantiated from 'static bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::shl_real_type(long double, char*, char*&) [with CharT = char, Traits = std::char_traits<char>, bool RequiresStringbuffer = false]'
../boost/lexical_cast.hpp:1535:   instantiated from 'bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::operator<<(long double) [with CharT = char, Traits = std::char_traits<char>, bool RequiresStringbuffer = false]'
../boost/lexical_cast.hpp:2134:   instantiated from 'static Target boost::detail::lexical_cast_do_cast<Target, Source>::lexical_cast_impl(const Source&) [with Target = char, Source = long double]'
../boost/lexical_cast.hpp:2294:   instantiated from 'Target boost::lexical_cast(const Source&) [with Target = char, Source = long double]'
../libs/conversion/test/lexical_cast_float_types_test.cpp:394:   instantiated from 'void test_conversion_from_float_to_char(CharT) [with T = long double, CharT = char]'
../libs/conversion/test/lexical_cast_float_types_test.cpp:440:   instantiated from 'void test_conversion_from_to_float() [with T = long double]'
../libs/conversion/test/lexical_cast_float_types_test.cpp:507:   instantiated from here
../boost/math/tools/promotion.hpp:141: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>' 

Failed tests: FBSD-32 and FBSD-64

Change History (1)

comment:1 by John Maddock, 10 years ago

Resolution: fixed
Status: newclosed

(In [81624]) Lots of small patches. Update and regenerate docs. Fixes #7183. Fixes #7290. Fixes #7291. Fixes #7649. Refs #7492.

Note: See TracTickets for help on using tickets.