libstdc++: Fix mistake in PR98374 change [PR98377]
authorPatrick Palka <ppalka@redhat.com>
Fri, 18 Dec 2020 18:01:49 +0000 (13:01 -0500)
committerPatrick Palka <ppalka@redhat.com>
Fri, 18 Dec 2020 18:01:49 +0000 (13:01 -0500)
The #ifdef RADIXCHAR directive should be moved one line up so that it
also guards the outer if statement, or else when RADIXCHAR is not
defined the outer if statement will end up nonsensically guarding the
declaration of output_length_upper_bound a few lines below it.

libstdc++-v3/ChangeLog:

PR libstdc++/98377
* src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
Fix mistake.

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

index 3f46bce7a15c407a54104d19c045fc4e092efb36..b7c31c746cce0c516bfc1dc18410b4706c3e2ee3 100644 (file)
@@ -1114,8 +1114,8 @@ template<typename T>
        // Since the output of printf is locale-sensitive, we need to be able
        // to handle a radix point that's different from '.'.
        char radix[6] = {'.', '\0', '\0', '\0', '\0', '\0'};
-       if (effective_precision > 0)
 #ifdef RADIXCHAR
+       if (effective_precision > 0)
          // ???: Can nl_langinfo() ever return null?
          if (const char* const radix_ptr = nl_langinfo(RADIXCHAR))
            {