Opened 5 years ago

Closed 4 years ago

#13531 closed Bugs (fixed)

Facing build failure on PowerPC due to boost/spirit/home/x3/support/numeric_utils/sign.hpp

Reported by: Rangasamy <rangasamy@…> Owned by: Joel de Guzman
Milestone: To Be Determined Component: spirit
Version: Boost 1.63.0 Severity: Problem
Keywords: numeric_utils/sign.hpp Cc: nok.raven@…

Description

Below is the error message from boost/spirit/home/x3/support/numeric_utils/sign.hpp

This can be resolved by making the below change in sign.hpp, #if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)

return -x;

#else

return (boost::math::changesign)(x);

#endif

Kindly help in making this change for future releases.

Error Message below,

../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp: In instantiation of 'T snps_boost_1_63_0::spirit::x3::changesign(T) [with T = long double]': ../../../../../include/boost/spirit/home/x3/support/numeric_utils/extract_real.hpp:93:38: required from here ../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:36:32: error: no type named 'bits' in 'traits_type {aka struct snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'

typename traits_type::bits a;

../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:37:26: error: 'get_bits' is not a member of 'traits_type {aka snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'

traits_type::get_bits(x, a); ~~

../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:36:32: error: no type named 'bits' in 'traits_type {aka struct snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'

typename traits_type::bits a;

../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:38:7: error: 'sign' is not a member of 'traits_type {aka snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'

a = traits_type::sign; ~

../../../../../include/boost/spirit/home/x3/support/numeric_utils/sign.hpp:39:26: error: 'set_bits' is not a member of 'traits_type {aka snps_boost_1_63_0::math::detail::fp_traits_non_native<long double, snps_boost_1_63_0::math::detail::extended_double_precision>}'

traits_type::set_bits(x, a); ~~

* exit status 1 *

Attachments (1)

sign.hpp.txt (1.3 KB ) - added by Rangasamy <rangasamy@…> 5 years ago.

Download all attachments as: .zip

Change History (5)

by Rangasamy <rangasamy@…>, 5 years ago

Attachment: sign.hpp.txt added

comment:2 by rangasamy@…, 4 years ago

Just an information, this issue exists in Boost 1.67.0 as well which got released this month.

comment:3 by Nikita Kniazev <nok.raven@…>, 4 years ago

Cc: nok.raven@… added

Fixed in https://github.com/boostorg/spirit/pull/392

Thanks for bringing up this 3 years old issue. I am sorry about the delay, the fix will be in Boost 1.69 (it is too late for 1.68).

comment:4 by Joel de Guzman, 4 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.