[llvm] 06714e1 - llvm-readobj/ARM: activate big-endian attribute printing (#87806)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 15 01:36:44 PDT 2024
Author: Ramkumar Ramachandra
Date: 2024-04-15T09:36:40+01:00
New Revision: 06714e1bfe8999c0acb5c9b94b60690f7b9d2904
URL: https://github.com/llvm/llvm-project/commit/06714e1bfe8999c0acb5c9b94b60690f7b9d2904
DIFF: https://github.com/llvm/llvm-project/commit/06714e1bfe8999c0acb5c9b94b60690f7b9d2904.diff
LOG: llvm-readobj/ARM: activate big-endian attribute printing (#87806)
Activate attribute printing for big-endian encoding for ARM. The
supporting code already exists, and the patch is trivial.
Fixes #62400.
Added:
Modified:
llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
llvm/tools/llvm-readobj/ELFDumper.cpp
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
index 7d20b310f9d906..3b94c7994cf3c0 100644
--- a/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
+++ b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
@@ -1,17 +1,23 @@
-## We only implement attribute section printing for little-endian encoding.
-
# RUN: yaml2obj %s -o %t.o
-# RUN: llvm-readobj -A %t.o 2>&1 | FileCheck %s -DFILE=%t.o
+# RUN: llvm-readelf -A %t.o 2>&1 | FileCheck %s
-# CHECK: warning: '[[FILE]]': attribute printing not implemented for big-endian ARM objects
+# CHECK: BuildAttributes {
+# CHECK-NEXT: FormatVersion: 0x41
+# CHECK-NEXT: Section 1 {
+# CHECK-NEXT: SectionLength: 22
+# CHECK-NEXT: Vendor: armabi
+# CHECK-NEXT: }
+# CHECK-NEXT: }
--- !ELF
FileHeader:
Class: ELFCLASS32
-## Test big-endian encoding.
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_ARM
Sections:
- Name: .ARM.attributes
Type: SHT_ARM_ATTRIBUTES
+ ContentArray: [ 0x41, 0x00, 0x00, 0x00, 0x16, 0x61, 0x72, 0x6D, 0x61, 0x62,
+ 0x69, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x04, 0x01, 0x06, 0x01, 0x08,
+ 0x01 ]
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index d3534820c11724..1108672003fc76 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -2833,13 +2833,9 @@ template <class ELFT> void ELFDumper<ELFT>::printArchSpecificInfo() {
llvm::endianness::little);
break;
case EM_ARM:
- if (Obj.isLE())
- printAttributes(ELF::SHT_ARM_ATTRIBUTES,
- std::make_unique<ARMAttributeParser>(&W),
- llvm::endianness::little);
- else
- reportUniqueWarning("attribute printing not implemented for big-endian "
- "ARM objects");
+ printAttributes(
+ ELF::SHT_ARM_ATTRIBUTES, std::make_unique<ARMAttributeParser>(&W),
+ Obj.isLE() ? llvm::endianness::little : llvm::endianness::big);
break;
case EM_RISCV:
if (Obj.isLE())
More information about the llvm-commits
mailing list