[llvm] [llvm-objdump] Implement decoding auxiliary header for xcoff with llvm-objdump --private-headers (PR #105682)

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 30 02:14:22 PDT 2024


================
@@ -41,14 +42,34 @@ class XCOFFDumper : public objdump::Dumper {
 private:
   void printPrivateHeaders() override;
   void printFileHeader();
-  FormattedString formatName(StringRef Name);
+  void printAuxiliaryHeader();
+  void printAuxiliaryHeader(const XCOFFAuxiliaryHeader32 *AuxHeader);
+  void printAuxiliaryHeader(const XCOFFAuxiliaryHeader64 *AuxHeader);
+  template <typename MemberOfAuxiliaryHeader, typename XCOFFAuxiliaryHeader>
+  void printAuxMemberHelper(PrintStyle Style, const char *MemberName,
+                            const MemberOfAuxiliaryHeader &Member,
+                            const XCOFFAuxiliaryHeader *AuxHeader,
+                            uint16_t AuxSize, uint16_t &PartialFieldOffset,
+                            const char *&PartialFieldName);
+  template <typename XCOFFAuxiliaryHeader>
+  void checkAndPrintAuxHeaderParseError(const char *PartialFieldName,
+                                        uint16_t PartialFieldOffset,
+                                        uint16_t AuxSize,
+                                        XCOFFAuxiliaryHeader &AuxHeader);
+
+  void printBinary(StringRef Name, ArrayRef<uint8_t> B);
----------------
jh7370 wrote:

```suggestion
  void printBinary(StringRef Name, ArrayRef<uint8_t> Data);
```
It's not obvious what is meant by `B` in general, since single-letter variable names are largely meaningless. Let's give it a concrete name.

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


More information about the llvm-commits mailing list