[Lldb-commits] [lldb] [lldb] Override default struct layout when building register types (PR #189590)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Wed Apr 15 01:49:25 PDT 2026


================
@@ -28,31 +28,18 @@ static void dump_type_value(lldb_private::CompilerType &fields_type, T value,
                             lldb_private::Stream &strm) {
   lldb::ByteOrder target_order = exe_scope->CalculateProcess()->GetByteOrder();
 
-  // For the bitfield types we generate, it is expected that the fields are
-  // in what is usually a big endian order. Most significant field first.
-  // This is also clang's internal ordering and the order we want to print
-  // them. On a big endian host this all matches up, for a little endian
-  // host we have to swap the order of the fields before display.
-  if (target_order == lldb::ByteOrder::eByteOrderLittle) {
-    value = reg_info.flags_type->ReverseFieldOrder(value);
-  }
-
-  // Then we need to match the target's endian on a byte level as well.
+  // The type will be rendered in the target's type system, so it must match
+  // its endian.
   if (lldb_private::endian::InlHostByteOrder() != target_order)
     value = llvm::byteswap(value);
----------------
DavidSpickett wrote:

You're right that this ability for register values to be anything other than host has probably never been used. Removing the code for it is not something I intend to do, but given that I will need to refactor later, if I can handle the possibility of other endian at the same time, might as well.

https://github.com/llvm/llvm-project/pull/189590


More information about the lldb-commits mailing list