[libc] get_table_negative cannot be constexpr
authorGuillaume Chatelet <gchatelet@google.com>
Wed, 4 Jan 2023 12:08:06 +0000 (12:08 +0000)
committerGuillaume Chatelet <gchatelet@google.com>
Thu, 5 Jan 2023 14:28:50 +0000 (14:28 +0000)
GCC complains about if conditions not being constant expressions.
As-is get_table_negative cannot be marked constexpr.

Differential Revision: https://reviews.llvm.org/D140967

libc/src/__support/float_to_string.h

index e981484..da1defa 100644 (file)
@@ -130,8 +130,8 @@ get_table_positive(int exponent, size_t i, const size_t constant) {
 // calculations.
 // The formula being used looks more like this:
 // floor(10^(9*(-i)) * 2^(c_0 + (-e))) % (10^9 * 2^c_0)
-constexpr inline cpp::UInt<MID_INT_SIZE>
-get_table_negative(int exponent, size_t i, const size_t constant) {
+inline cpp::UInt<MID_INT_SIZE> get_table_negative(int exponent, size_t i,
+                                                  const size_t constant) {
   constexpr size_t INT_SIZE = 1024;
   int shift_amount = constant - exponent;
   cpp::UInt<INT_SIZE> num(1);