@@ -848,7 +848,7 @@ constexpr auto add_impl(T lhs_sig, std::int32_t lhs_exp, bool lhs_sign,
848848 << " \n New neg: " << lhs_sign << std::endl;
849849 #endif
850850
851- return {lhs_sig, lhs_exp, lhs_sign};
851+ return {static_cast <std:: uint32_t >( lhs_sig) , lhs_exp, lhs_sign};
852852 }
853853 else if (delta_exp == detail::precision + 1 )
854854 {
@@ -868,7 +868,7 @@ constexpr auto add_impl(T lhs_sig, std::int32_t lhs_exp, bool lhs_sign,
868868 << " \n New neg: " << lhs_sign << std::endl;
869869 #endif
870870
871- return {lhs_sig, lhs_exp, lhs_sign};
871+ return {static_cast <std:: uint32_t >( lhs_sig) , lhs_exp, lhs_sign};
872872 }
873873
874874 // The two numbers can be added together without special handling
@@ -974,11 +974,11 @@ constexpr auto sub_impl(T lhs_sig, std::int32_t lhs_exp, bool lhs_sign,
974974
975975 if (rhs_sign && !lhs_sign)
976976 {
977- new_sig = signed_sig_lhs + signed_sig_rhs;
977+ new_sig = static_cast <std:: int32_t >( signed_sig_lhs) + static_cast <std:: int32_t >( signed_sig_rhs) ;
978978 }
979979 else
980980 {
981- new_sig = signed_sig_lhs - signed_sig_rhs;
981+ new_sig = static_cast <std:: int32_t >( signed_sig_lhs) - static_cast <std:: int32_t >( signed_sig_rhs) ;
982982 }
983983
984984 const auto new_exp {abs_lhs_bigger ? lhs_exp : rhs_exp};
0 commit comments