[llvm] [readobj][ELF][AArch64] Handle misformed AArch64 build attribute section (PR #134888)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 9 15:56:36 PDT 2025
https://github.com/sivan-shani updated https://github.com/llvm/llvm-project/pull/134888
>From d6d379eecc63d9a073d2e7b4087d100d9913cdb4 Mon Sep 17 00:00:00 2001
From: Sivan Shani <sivan.shani at arm.com>
Date: Tue, 8 Apr 2025 18:28:24 +0100
Subject: [PATCH 1/9] [readobj][ELF][AArch64] Handle misformed AArch64 build
attribute section
Report an error when the .ARM.attributes section for AArch64 is malformed or violates expected format.
---
llvm/lib/Support/ELFAttrParserExtended.cpp | 26 ++++++++++++
.../AArch64/build-attributes-melformed-long.s | 40 ++++++++++++++++++
.../build-attributes-melformed-short.s | 41 ++++++++++++++++++
.../AArch64/build-attributes-melformed-type.s | 25 +++++++++++
.../build-attributes-melformed-values.s | 42 +++++++++++++++++++
.../AArch64/build-attributes-melformed-ver.s | 24 +++++++++++
6 files changed, 198 insertions(+)
create mode 100644 llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
create mode 100644 llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
create mode 100644 llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
create mode 100644 llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
create mode 100644 llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
diff --git a/llvm/lib/Support/ELFAttrParserExtended.cpp b/llvm/lib/Support/ELFAttrParserExtended.cpp
index c08ed5e6fe86e..001006b784ebf 100644
--- a/llvm/lib/Support/ELFAttrParserExtended.cpp
+++ b/llvm/lib/Support/ELFAttrParserExtended.cpp
@@ -103,6 +103,8 @@ Error ELFExtendedAttrParser::parse(ArrayRef<uint8_t> Section,
// Get format-version
uint8_t FormatVersion = De.getU8(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
if (ELFAttrs::Format_Version != FormatVersion)
return createStringError(errc::invalid_argument,
"unrecognized format-version: 0x" +
@@ -110,6 +112,8 @@ Error ELFExtendedAttrParser::parse(ArrayRef<uint8_t> Section,
while (!De.eof(Cursor)) {
uint32_t ExtBASubsectionLength = De.getU32(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
// Minimal valid Extended Build Attributes subsection header size is at
// least 8: length(4) name(at least a single char + null) optionality(1) and
// type(1)
@@ -120,9 +124,25 @@ Error ELFExtendedAttrParser::parse(ArrayRef<uint8_t> Section,
utohexstr(Cursor.tell() - 4));
StringRef VendorName = De.getCStrRef(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
uint8_t IsOptional = De.getU8(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
+ if (!(0 == IsOptional || 1 == IsOptional))
+ return createStringError(
+ errc::invalid_argument,
+ "\ninvalid Optionality at offset " + utohexstr(Cursor.tell() - 4) +
+ ": " + utohexstr(IsOptional) + " (Options are 1|0)");
StringRef IsOptionalStr = IsOptional ? "optional" : "required";
uint8_t Type = De.getU8(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
+ if (!(0 == Type || 1 == Type))
+ return createStringError(errc::invalid_argument,
+ "\ninvalid Type at offset " +
+ utohexstr(Cursor.tell() - 4) + ": " +
+ utohexstr(Type) + " (Options are 1|0)");
StringRef TypeStr = Type ? "ntbs" : "uleb128";
BuildAttributeSubSection BASubSection;
@@ -150,6 +170,8 @@ Error ELFExtendedAttrParser::parse(ArrayRef<uint8_t> Section,
(OffsetInSection + ExtBASubsectionLength - BytesAllButAttributes)) {
uint64_t Tag = De.getULEB128(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
StringRef TagName = getTagName(VendorName, Tag);
@@ -157,10 +179,14 @@ Error ELFExtendedAttrParser::parse(ArrayRef<uint8_t> Section,
std::string ValueStr = "";
if (Type) { // type==1 --> ntbs
ValueStr = De.getCStrRef(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
if (Sw)
Sw->printString("" != TagName ? TagName : utostr(Tag), ValueStr);
} else { // type==0 --> uleb128
ValueInt = De.getULEB128(Cursor);
+ if (!Cursor)
+ return Cursor.takeError();
if (Sw)
Sw->printNumber("" != TagName ? TagName : utostr(Tag), ValueInt);
}
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
new file mode 100644
index 0000000000000..469a424e577c2
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
@@ -0,0 +1,40 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+
+# CHECK: BuildAttributes {
+# CHECK-NEXT: FormatVersion: 0x41
+# CHECK-NEXT: Section 1 {
+# CHECK-NEXT: SectionLength: 25
+# CHECK-NEXT: VendorName: aeabi_pauthabi Optionality: required Type: uleb128
+# CHECK-NEXT: Attributes {
+# CHECK-NEXT: Tag_PAuth_Platform: 1
+# CHECK-NEXT: Tag_PAuth_Schema: 1
+# CHECK-NEXT: }
+# CHECK-NEXT: }
+# CHECK-NEXT: Section 2 {
+# CHECK-NEXT: SectionLength: 153
+# CHECK-NEXT: VendorName: aeabi_feature_and_bits Optionality: optional Type: uleb128
+# CHECK-NEXT: Attributes {
+# CHECK-NEXT: Tag_Feature_BTI: 1
+# CHECK-NEXT: Tag_Feature_PAC: 1
+# CHECK-NEXT: Tag_Feature_GCS: 1
+# CHECK-NEXT: unable to dump attributes from the Unknown section with index 1: unable to decode LEB128 at offset 0x0000003d: malformed uleb128, extends past end
+
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AARCH64
+ Entry: 0x0
+
+Sections:
+ - Name: .ARM.attributes
+ Type: 0x70000003 # SHT_LOPROC + 3
+ AddressAlign: 1
+ Offset: 0x40
+ Size: 0x3d
+ Content: "411900000061656162695f7061757468616269000000010102019900000061656162695f666561747572655f616e645f62697473000100000101010201"
+...
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
new file mode 100644
index 0000000000000..4ea930c9f6cd7
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
@@ -0,0 +1,41 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+
+# CHECK: BuildAttributes {
+# CHECK-NEXT: FormatVersion: 0x41
+# CHECK-NEXT: Section 1 {
+# CHECK-NEXT: SectionLength: 25
+# CHECK-NEXT: VendorName: aeabi_pauthabi Optionality: required Type: uleb128
+# CHECK-NEXT: Attributes {
+# CHECK-NEXT: Tag_PAuth_Platform: 1
+# CHECK-NEXT: Tag_PAuth_Schema: 1
+# CHECK-NEXT: }
+# CHECK-NEXT: }
+# CHECK-NEXT: Section 2 {
+# CHECK-NEXT: SectionLength: 32
+# CHECK-NEXT: VendorName: aeabi_feature_and_bits Optionality: optional Type: uleb128
+# CHECK-NEXT: Attributes {
+# CHECK-NEXT: Tag_Feature_BTI: 1
+# CHECK-NEXT: Tag_Feature_PAC: 1
+# CHECK-NEXT: }
+# CHECK-NEXT: }
+# CHECK-NEXT: unable to dump attributes from the Unknown section with index 1: invalid Extended Build Attributes subsection size at offset: 3B
+
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AARCH64
+ Entry: 0x0
+
+Sections:
+ - Name: .ARM.attributes
+ Type: 0x70000003 # SHT_LOPROC + 3
+ AddressAlign: 1
+ Offset: 0x40
+ Size: 0x41
+ Content: "411900000061656162695f7061757468616269000000010102012000000061656162695f666561747572655f616e645f6269747300010000010101020000"
+...
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
new file mode 100644
index 0000000000000..31eb5642b24db
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
@@ -0,0 +1,25 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+
+# CHECK: BuildAttributes {
+# CHECK-NEXT: FormatVersion: 0x41
+# CHECK-NEXT: unable to dump attributes from the Unknown section with index 1:
+# CHECK-NEXT: invalid Type at offset 12: 9 (Options are 1|0)
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AARCH64
+ Entry: 0x0
+
+Sections:
+ - Name: .ARM.attributes
+ Type: 0x70000003 # SHT_LOPROC + 3
+ AddressAlign: 1
+ Offset: 0x40
+ Size: 0x3d
+ Content: "411900000061656162695f7061757468616269000109010102012300000061656162695f666561747572655f616e645f62697473000100000101010201"
+...
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
new file mode 100644
index 0000000000000..5653036af6880
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
@@ -0,0 +1,42 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+
+# CHECK: BuildAttributes {
+# CHECK-NEXT: FormatVersion: 0x41
+# CHECK-NEXT: Section 1 {
+# CHECK-NEXT: SectionLength: 25
+# CHECK-NEXT: VendorName: aeabi_pauthabi Optionality: required Type: uleb128
+# CHECK-NEXT: Attributes {
+# CHECK-NEXT: Tag_PAuth_Platform: 1
+# CHECK-NEXT: Tag_PAuth_Schema: 1
+# CHECK-NEXT: }
+# CHECK-NEXT: }
+# CHECK-NEXT: Section 2 {
+# CHECK-NEXT: SectionLength: 35
+# CHECK-NEXT: VendorName: aeabi_feature_and_bits Optionality: optional Type: uleb128
+# CHECK-NEXT: Attributes {
+# CHECK-NEXT: Tag_Feature_BTI: 1
+# CHECK-NEXT: Tag_Feature_PAC: 1
+# CHECK-NEXT: Tag_Feature_GCS: 0
+# CHECK-NEXT: }
+# CHECK-NEXT: }
+# CHECK-NEXT: unable to dump attributes from the Unknown section with index 1: invalid Extended Build Attributes subsection size at offset: 3D
+
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AARCH64
+ Entry: 0x0
+
+Sections:
+ - Name: .ARM.attributes
+ Type: 0x70000003 # SHT_LOPROC + 3
+ AddressAlign: 1
+ Offset: 0x40
+ Size: 0x41
+ Content: "411900000061656162695f7061757468616269000000010102012300000061656162695f666561747572655f616e645f6269747300010000010101020000"
+...
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
new file mode 100644
index 0000000000000..c556be8a4acf6
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
@@ -0,0 +1,24 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+
+# CHECK: BuildAttributes {
+# CHECK-NEXT: FormatVersion: 0x37
+# CHECK-NEXT: unable to dump attributes from the Unknown section with index 1: unrecognized format-version: 0x37
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AARCH64
+ Entry: 0x0
+
+Sections:
+ - Name: .ARM.attributes
+ Type: 0x70000003 # SHT_LOPROC + 3
+ AddressAlign: 1
+ Offset: 0x40
+ Size: 0x3d
+ Content: "371900000061656162695f7061757468616269000000010102012300000061656162695f666561747572655f616e645f62697473000100000101010201"
+...
>From e63edc2364dfe8e370983205bae5d60ee567ac31 Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 20:00:15 +0100
Subject: [PATCH 2/9] make piping gerrors cross-platform
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
index 469a424e577c2..6e444fa917479 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
>From 41fb39f1b199a7ed8e7c5975c163c8b288bd88e4 Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 20:00:36 +0100
Subject: [PATCH 3/9] make piping gerrors cross-platform
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
index 4ea930c9f6cd7..759382dc7fbda 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
>From 5f322cd27e63679d2dad9b21b3b0f5dba9e01914 Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 20:00:57 +0100
Subject: [PATCH 4/9] make piping gerrors cross-platform
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
index 31eb5642b24db..8ee2aa8eb27bb 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
>From 0231a27f22a9f8502f1670b1215b7b883a293ea4 Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 20:01:17 +0100
Subject: [PATCH 5/9] make piping gerrors cross-platform
---
.../ELF/AArch64/build-attributes-melformed-values.s | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
index 5653036af6880..238fce6011842 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
>From 6c69a5fdd31b5e8278aef8f53f39cf61f056c14a Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 20:01:38 +0100
Subject: [PATCH 6/9] make piping errors cross-platform
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
index c556be8a4acf6..e12434c363c45 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o /dev/null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x37
>From 3b2c0f005be27ed6f4e986a2501ec859034592c1 Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 22:35:26 +0000
Subject: [PATCH 7/9] add %null to tests
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s | 2 +-
.../ELF/AArch64/build-attributes-melformed-values.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
index 6e444fa917479..96be0dfdceed3 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
index 759382dc7fbda..e1277b00f6ecb 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
index 8ee2aa8eb27bb..b1b510820b865 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
index 238fce6011842..25131c1944b6d 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
index e12434c363c45..3bdbe7140bc22 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x37
>From 27f536497cd42b6c576eb5693df4912e4e05636e Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 22:54:36 +0000
Subject: [PATCH 8/9] revert for technical resons (PR not being updated)
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s | 2 +-
.../ELF/AArch64/build-attributes-melformed-values.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
index 96be0dfdceed3..6e444fa917479 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
index e1277b00f6ecb..759382dc7fbda 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
index b1b510820b865..8ee2aa8eb27bb 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
index 25131c1944b6d..238fce6011842 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
index 3bdbe7140bc22..e12434c363c45 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x37
>From 29d8fa57ba8ad4cb5abf7eb0ac53afeb6e965cad Mon Sep 17 00:00:00 2001
From: SivanShani-Arm <sivan.shani at arm.com>
Date: Wed, 9 Apr 2025 22:56:22 +0000
Subject: [PATCH 9/9] add %null
---
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s | 2 +-
.../ELF/AArch64/build-attributes-melformed-values.s | 2 +-
.../llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
index 6e444fa917479..96be0dfdceed3 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-long.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
index 759382dc7fbda..e1277b00f6ecb 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-short.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
index 8ee2aa8eb27bb..b1b510820b865 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-type.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
index 238fce6011842..25131c1944b6d 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-values.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x41
diff --git a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
index e12434c363c45..3bdbe7140bc22 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
+++ b/llvm/test/tools/llvm-readobj/ELF/AArch64/build-attributes-melformed-ver.s
@@ -1,5 +1,5 @@
# RUN: yaml2obj %s -o %t.o
-# RUN: not llvm-readobj --arch-specific %t.o 2>&1 | FileCheck %s
+# RUN: not llvm-readobj --arch-specific %t.o %null 2>&1 | FileCheck %s
# CHECK: BuildAttributes {
# CHECK-NEXT: FormatVersion: 0x37
More information about the llvm-commits
mailing list