[Lldb-commits] [lldb] r108976 - /lldb/trunk/source/Core/DataExtractor.cpp

Greg Clayton gclayton at apple.com
Tue Jul 20 18:08:41 PDT 2010


Author: gclayton
Date: Tue Jul 20 20:08:41 2010
New Revision: 108976

URL: http://llvm.org/viewvc/llvm-project?rev=108976&view=rev
Log:
Avoid std::bitset<64>::to_string() since it is missing in earlier C++ 
libraries (from William Lynch).


Modified:
    lldb/trunk/source/Core/DataExtractor.cpp

Modified: lldb/trunk/source/Core/DataExtractor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/DataExtractor.cpp?rev=108976&r1=108975&r2=108976&view=diff
==============================================================================
--- lldb/trunk/source/Core/DataExtractor.cpp (original)
+++ lldb/trunk/source/Core/DataExtractor.cpp Tue Jul 20 20:08:41 2010
@@ -1197,7 +1197,13 @@
         case eFormatBinary:
             {
                 uint64_t uval64 = GetMaxU64Bitfield(&offset, item_byte_size, item_bit_size, item_bit_offset);
-                std::string binary_value(std::bitset<64>(uval64).to_string());
+                // Avoid std::bitset<64>::to_string() since it is missing in
+                // earlier C++ libraries
+                std::string binary_value(64, '0');
+                std::bitset<64> bits(uval64);
+                for (size_t i = 0; i < 64; ++i)
+                    if (bits[i])
+                        binary_value[64 - 1 - i] = '1';
                 if (item_bit_size > 0)
                     s->Printf("0b%s", binary_value.c_str() + 64 - item_bit_size);
                 else if (item_byte_size > 0 && item_byte_size <= 8)





More information about the lldb-commits mailing list