libstdc++: Fix build failure on AArch64 ILP32 [PR98370]
authorPatrick Palka <ppalka@redhat.com>
Fri, 18 Dec 2020 16:52:24 +0000 (11:52 -0500)
committerPatrick Palka <ppalka@redhat.com>
Fri, 18 Dec 2020 16:52:24 +0000 (11:52 -0500)
This should fix a build failure on AArch64 ILP32 due to int32_t mapping
to long int instead of int on this platform, which causes type deduction
to fail in the below call to std::max as reported in the PR.

libstdc++-v3/ChangeLog:

PR libstdc++/98370
* src/c++17/floating_to_chars.cc (__floating_to_chars_shortest):
Provide explicit template arguments to the call to std::max.

libstdc++-v3/src/c++17/floating_to_chars.cc

index 6470fbb0b95f51ff82588f471c7a337f858da82e..3f46bce7a15c407a54104d19c045fc4e092efb36 100644 (file)
@@ -977,7 +977,7 @@ template<typename T>
        // fd.exponent contain all of the information needed to format the
        // number in fixed notation "as if by std::printf" (with precision
        // equal to -fd.exponent).
-       const int whole_digits = max(mantissa_length + fd.exponent, 1);
+       const int whole_digits = max<int>(mantissa_length + fd.exponent, 1);
        const int expected_output_length
          = fd.sign + whole_digits + strlen(".") + -fd.exponent;
        if (last - first < expected_output_length)