[libcxx] Use integer division
authorPetr Hosek <phosek@google.com>
Mon, 29 Mar 2021 17:49:55 +0000 (10:49 -0700)
committerPetr Hosek <phosek@google.com>
Mon, 29 Mar 2021 18:59:44 +0000 (11:59 -0700)
In Python 3, math.floor returns int when both arguments are ints.
In Python 2, math.floor returns float. This leads to a failure
because the result of math.floor is used as an array index. While
Python 2 is on its way out, it's still used in some places so use
an integer division instead.

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

libcxx/utils/gdb/libcxx/printers.py

index 9b413a8..1e88e1e 100644 (file)
@@ -439,7 +439,7 @@ class StdBitsetPrinter(object):
 
     def _list_it(self):
         for bit in range(self.bit_count):
-            word = math.floor(bit / self.bits_per_word)
+            word = bit // self.bits_per_word
             word_bit = bit % self.bits_per_word
             if self.values[word] & (1 << word_bit):
                 yield ("[%d]" % bit, 1)