[llvm] [AMDGPU] Add AMDGPU support for llvm-objcopy (PR #92066)

Aakanksha Patil via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 11 16:06:07 PDT 2025


https://github.com/aakanksha555 updated https://github.com/llvm/llvm-project/pull/92066

>From 07f69db8ddb08971ad66e8b62552351491232c4a Mon Sep 17 00:00:00 2001
From: Aakanksha Patil <paakan at amd.com>
Date: Tue, 7 May 2024 15:40:39 -0400
Subject: [PATCH 1/4] [AMDGPU] Add AMDGPU support for llvm-objcopy

---
 .../ELF/amdgpu-cross-arch-headers.test        | 57 +++++++++++++++++++
 llvm/tools/llvm-objcopy/ObjcopyOptions.cpp    |  2 +
 2 files changed, 59 insertions(+)
 create mode 100644 llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test

diff --git a/llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test b/llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test
new file mode 100644
index 0000000000000..a7242385950a8
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test
@@ -0,0 +1,57 @@
+# Show that the --output-format correctly configures both the main output file
+# and DWO output.
+# Note that we don't actually need any DWARF to produce the DWO file.
+
+# RUN: yaml2obj %s -o %t.o
+
+# Without --output-format, the format should match the input.
+
+# RUN: llvm-objcopy %t.o -O elf64-amdgpu %t.elf64_amdgpu.o --split-dwo=%t.elf64_amdgpu.dwo
+# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.o | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
+# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.dwo | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
+
+!ELF
+FileHeader:
+  Class:           ELFCLASS32
+  Data:            ELFDATA2LSB
+  Type:            ET_EXEC
+  # Arbitrary values that do not match any value we convert to via --output-format.
+  Machine:         EM_AMDGPU
+  OSABI:           ELFOSABI_STANDALONE
+  Flags:           [EF_AMDGPU_MACH_AMDGCN_GFX900]
+Sections:
+  - Name:            .text
+    Type:            SHT_PROGBITS
+    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
+  - Name:            .data
+    Type:            SHT_PROGBITS
+    Flags:           [ SHF_ALLOC ]
+Symbols:
+  - Name:     foo
+    Type:     STT_FUNC
+    Section:  .text
+    Value:    0x1234
+    Binding:  STB_GLOBAL
+  - Name:     bar
+    Type:     STT_OBJECT
+    Section:  .data
+    Value:    0xabcd
+    Binding:  STB_GLOBAL
+
+# CHECK:             Format:
+# AMDGPU-SAME:       elf64-amdgpu
+
+# AMDGPU-NEXT:       Arch: amdgcn
+
+# 64-NEXT:           AddressSize: 64bit
+
+# 64:                Class: 64-bit
+# LE:                DataEncoding: LittleEndian
+
+# SYSV:              OS/ABI: SystemV (0x0)
+
+# AMDGPU:            Machine: EM_AMDGPU (0xE0)
+
+# 64:                HeaderSize: 64
+
+# 64:                SectionHeaderEntrySize: 64
diff --git a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
index a1897334cff2e..0fd1f9eac40f4 100644
--- a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
+++ b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
@@ -319,6 +319,8 @@ static const StringMap<MachineInfo> TargetMap{
     {"elf64-loongarch", {ELF::EM_LOONGARCH, true, true}},
     // SystemZ
     {"elf64-s390", {ELF::EM_S390, true, false}},
+    // AMDGPU
+    {"elf64-amdgpu", {ELF::EM_AMDGPU, true, true}},
 };
 
 static Expected<TargetInfo>

>From 03fad14c55233123d6929f578131d0973388bd4b Mon Sep 17 00:00:00 2001
From: Aakanksha Patil <paakan at amd.com>
Date: Tue, 18 Jun 2024 12:47:45 -0400
Subject: [PATCH 2/4] [AMDGPU] Add AMDGPU support for llvm-objcopy

Add amdgpu support in cross-arch-headers.test instead of its own test
---
 .../ELF/amdgpu-cross-arch-headers.test        | 57 -------------------
 .../llvm-objcopy/ELF/cross-arch-headers.test  |  9 +++
 2 files changed, 9 insertions(+), 57 deletions(-)
 delete mode 100644 llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test

diff --git a/llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test b/llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test
deleted file mode 100644
index a7242385950a8..0000000000000
--- a/llvm/test/tools/llvm-objcopy/ELF/amdgpu-cross-arch-headers.test
+++ /dev/null
@@ -1,57 +0,0 @@
-# Show that the --output-format correctly configures both the main output file
-# and DWO output.
-# Note that we don't actually need any DWARF to produce the DWO file.
-
-# RUN: yaml2obj %s -o %t.o
-
-# Without --output-format, the format should match the input.
-
-# RUN: llvm-objcopy %t.o -O elf64-amdgpu %t.elf64_amdgpu.o --split-dwo=%t.elf64_amdgpu.dwo
-# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.o | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
-# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.dwo | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
-
-!ELF
-FileHeader:
-  Class:           ELFCLASS32
-  Data:            ELFDATA2LSB
-  Type:            ET_EXEC
-  # Arbitrary values that do not match any value we convert to via --output-format.
-  Machine:         EM_AMDGPU
-  OSABI:           ELFOSABI_STANDALONE
-  Flags:           [EF_AMDGPU_MACH_AMDGCN_GFX900]
-Sections:
-  - Name:            .text
-    Type:            SHT_PROGBITS
-    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
-  - Name:            .data
-    Type:            SHT_PROGBITS
-    Flags:           [ SHF_ALLOC ]
-Symbols:
-  - Name:     foo
-    Type:     STT_FUNC
-    Section:  .text
-    Value:    0x1234
-    Binding:  STB_GLOBAL
-  - Name:     bar
-    Type:     STT_OBJECT
-    Section:  .data
-    Value:    0xabcd
-    Binding:  STB_GLOBAL
-
-# CHECK:             Format:
-# AMDGPU-SAME:       elf64-amdgpu
-
-# AMDGPU-NEXT:       Arch: amdgcn
-
-# 64-NEXT:           AddressSize: 64bit
-
-# 64:                Class: 64-bit
-# LE:                DataEncoding: LittleEndian
-
-# SYSV:              OS/ABI: SystemV (0x0)
-
-# AMDGPU:            Machine: EM_AMDGPU (0xE0)
-
-# 64:                HeaderSize: 64
-
-# 64:                SectionHeaderEntrySize: 64
diff --git a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
index 9a8128611792d..2d9222673c12c 100644
--- a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+++ b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
@@ -3,6 +3,7 @@
 # Note that we don't actually need any DWARF to produce the DWO file.
 
 # RUN: yaml2obj %s -o %t.o
+# RUN: yaml2obj -DFLAGS=[EF_AMDGPU_MACH_AMDGCN_GFX900] %s -o %t.o
 
 # Without --output-format, the format should match the input.
 # RUN: llvm-objcopy %t.o %t.default.o --split-dwo=%t.default.dwo
@@ -121,6 +122,10 @@
 # RUN: llvm-readobj --file-headers %t.elf64_s390.o | FileCheck %s --check-prefixes=CHECK,BE,S390X,64,SYSV
 # RUN: llvm-readobj --file-headers %t.elf64_s390.dwo | FileCheck %s --check-prefixes=CHECK,BE,S390X,64,SYSV
 
+# RUN: llvm-objcopy %t.o -O elf64-amdgpu %t.elf64_amdgpu.o --split-dwo=%t.elf64_amdgpu.dwo
+# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.o | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
+# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.dwo | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
+
 !ELF
 FileHeader:
   Class:           ELFCLASS32
@@ -129,6 +134,7 @@ FileHeader:
   # Arbitrary values that do not match any value we convert to via --output-format.
   Machine:         EM_NONE
   OSABI:           ELFOSABI_STANDALONE
+  Flags:           [[FLAGS=<none>]]
 Sections:
   - Name:            .text
     Type:            SHT_PROGBITS
@@ -154,6 +160,7 @@ Symbols:
 # I386-SAME:    i386
 # IAMCU-SAME:   iamcu
 # AARCH-SAME:   aarch64
+# AMDGPU-SAME:  elf64-amdgpu
 # ARM-SAME:     littlearm
 # HEXAGON-SAME: hexagon
 # LA32-SAME:    loongarch{{$}}
@@ -171,6 +178,7 @@ Symbols:
 # I386-NEXT:     Arch: i386
 # IAMCU-NEXT:    Arch: i386
 # AARCH-NEXT:    Arch: aarch64
+# AMDGPU-NEXT:   Arch: amdgcn
 # ARM-NEXT:      Arch: arm
 # HEXAGON-NEXT:  Arch: hexagon
 # LA32-NEXT:     Arch: loongarch32
@@ -204,6 +212,7 @@ Symbols:
 # DEFAULT: OS/ABI: Standalone (0xFF)
 
 # AARCH:   Machine: EM_AARCH64 (0xB7)
+# AMDGPU:  Machine: EM_AMDGPU (0xE0)
 # ARM:     Machine: EM_ARM (0x28)
 # HEXAGON: Machine: EM_HEXAGON (0xA4)
 # I386:    Machine: EM_386 (0x3)

>From 5fb376cca642133d28c3d21c31e8af66a9047294 Mon Sep 17 00:00:00 2001
From: Aakanksha Patil <paakan at amd.com>
Date: Tue, 3 Jun 2025 19:07:30 -0400
Subject: [PATCH 3/4] Update cross-arch-headers.test

---
 .../llvm-objcopy/ELF/cross-arch-headers.test    | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
index 2d9222673c12c..5102e0d03be8c 100644
--- a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+++ b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
@@ -2,8 +2,8 @@
 # and DWO output.
 # Note that we don't actually need any DWARF to produce the DWO file.
 
-# RUN: yaml2obj %s -o %t.o
-# RUN: yaml2obj -DFLAGS=[EF_AMDGPU_MACH_AMDGCN_GFX900] %s -o %t.o
+# RUN: yaml2obj -DMACHINE=EM_NONE -DFLAGS="" %s -o %t.o
+# RUN: yaml2obj -DMACHINE=EM_AMDGPU -DFLAGS=EF_AMDGPU_MACH_AMDGCN_GFX900 %s -o %t-amdgpu.o
 
 # Without --output-format, the format should match the input.
 # RUN: llvm-objcopy %t.o %t.default.o --split-dwo=%t.default.dwo
@@ -122,9 +122,10 @@
 # RUN: llvm-readobj --file-headers %t.elf64_s390.o | FileCheck %s --check-prefixes=CHECK,BE,S390X,64,SYSV
 # RUN: llvm-readobj --file-headers %t.elf64_s390.dwo | FileCheck %s --check-prefixes=CHECK,BE,S390X,64,SYSV
 
-# RUN: llvm-objcopy %t.o -O elf64-amdgpu %t.elf64_amdgpu.o --split-dwo=%t.elf64_amdgpu.dwo
-# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.o | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
-# RUN: llvm-readobj --file-headers %t.elf64_amdgpu.dwo | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
+
+# RUN: llvm-objcopy %t-amdgpu.o -O elf64-amdgpu %t-amdgpu.elf64_amdgpu.o --split-dwo=%t-amdgpu.elf64_amdgpu.dwo
+# RUN: llvm-readobj --file-headers %t-amdgpu.elf64_amdgpu.o | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
+# RUN: llvm-readobj --file-headers %t-amdgpu.elf64_amdgpu.dwo | FileCheck %s --check-prefixes=CHECK,LE,AMDGPU,64,SYSV
 
 !ELF
 FileHeader:
@@ -132,9 +133,9 @@ FileHeader:
   Data:            ELFDATA2LSB
   Type:            ET_EXEC
   # Arbitrary values that do not match any value we convert to via --output-format.
-  Machine:         EM_NONE
+  Machine:         [[MACHINE]]
+  Flags:           [ [[FLAGS]] ]
   OSABI:           ELFOSABI_STANDALONE
-  Flags:           [[FLAGS=<none>]]
 Sections:
   - Name:            .text
     Type:            SHT_PROGBITS
@@ -160,7 +161,7 @@ Symbols:
 # I386-SAME:    i386
 # IAMCU-SAME:   iamcu
 # AARCH-SAME:   aarch64
-# AMDGPU-SAME:  elf64-amdgpu
+# AMDGPU-SAME:  amdgpu
 # ARM-SAME:     littlearm
 # HEXAGON-SAME: hexagon
 # LA32-SAME:    loongarch{{$}}

>From 5c078b046ac9cab0ee6b7a73791b61006d5bfdb0 Mon Sep 17 00:00:00 2001
From: Aakanksha Patil <paakan at amd.com>
Date: Wed, 4 Jun 2025 20:20:49 -0400
Subject: [PATCH 4/4] Allow ELF Fileheader Flags to accept "<none>" value

---
 llvm/include/llvm/ObjectYAML/ELFYAML.h             |  2 +-
 llvm/lib/ObjectYAML/ELFEmitter.cpp                 |  5 ++++-
 llvm/lib/ObjectYAML/ELFYAML.cpp                    |  2 +-
 llvm/test/Object/obj2yaml.test                     |  1 +
 .../tools/llvm-objcopy/ELF/cross-arch-headers.test |  6 +++---
 .../obj2yaml/ELF/bb-addr-map-pgo-analysis-map.yaml |  4 ++++
 llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml      |  4 ++++
 .../obj2yaml/ELF/call-graph-profile-section.yaml   |  1 +
 .../ELF/duplicate-symbol-and-section-names.yaml    |  1 +
 llvm/test/tools/obj2yaml/ELF/emachine.yaml         |  2 ++
 llvm/test/tools/obj2yaml/ELF/eshnum.yaml           |  3 +++
 .../tools/obj2yaml/ELF/gnu-unique-symbols.yaml     |  1 +
 .../obj2yaml/ELF/implicit-sections-order.yaml      |  2 ++
 .../tools/obj2yaml/ELF/invalid-section-name.yaml   |  1 +
 llvm/test/tools/obj2yaml/ELF/mips-eflags.yaml      |  2 +-
 llvm/test/tools/obj2yaml/ELF/no-symbol-reloc.yaml  |  1 +
 llvm/test/tools/obj2yaml/ELF/no-symtab.yaml        |  2 ++
 llvm/test/tools/obj2yaml/ELF/null-section.yaml     |  4 ++++
 llvm/test/tools/obj2yaml/ELF/offset.yaml           |  1 +
 .../test/tools/obj2yaml/ELF/ppc64-relocations.yaml |  1 +
 llvm/test/tools/obj2yaml/ELF/relocation-type.yaml  |  1 +
 llvm/test/tools/obj2yaml/ELF/shstrtab.yaml         | 14 ++++++++++++++
 llvm/test/tools/obj2yaml/ELF/sht-symtab-shndx.yaml |  1 +
 llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml      |  4 ++++
 .../test/tools/obj2yaml/ELF/symbol-visibility.yaml |  1 +
 llvm/test/tools/obj2yaml/ELF/symbol.yaml           |  1 +
 llvm/test/tools/obj2yaml/ELF/versym-section.yaml   |  1 +
 27 files changed, 62 insertions(+), 7 deletions(-)

diff --git a/llvm/include/llvm/ObjectYAML/ELFYAML.h b/llvm/include/llvm/ObjectYAML/ELFYAML.h
index dfdfa055d65fa..1ef1e9123d2f1 100644
--- a/llvm/include/llvm/ObjectYAML/ELFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/ELFYAML.h
@@ -117,7 +117,7 @@ struct FileHeader {
   llvm::yaml::Hex8 ABIVersion;
   ELF_ET Type;
   std::optional<ELF_EM> Machine;
-  ELF_EF Flags;
+  std::optional<ELF_EF> Flags;
   llvm::yaml::Hex64 Entry;
   std::optional<StringRef> SectionHeaderStringTable;
 
diff --git a/llvm/lib/ObjectYAML/ELFEmitter.cpp b/llvm/lib/ObjectYAML/ELFEmitter.cpp
index 9ae76a71ede5e..77f541efa9fb9 100644
--- a/llvm/lib/ObjectYAML/ELFEmitter.cpp
+++ b/llvm/lib/ObjectYAML/ELFEmitter.cpp
@@ -481,7 +481,10 @@ void ELFState<ELFT>::writeELFHeader(raw_ostream &OS) {
 
   Header.e_version = EV_CURRENT;
   Header.e_entry = Doc.Header.Entry;
-  Header.e_flags = Doc.Header.Flags;
+  if (Doc.Header.Flags)
+    Header.e_flags = *Doc.Header.Flags;
+  else
+    Header.e_flags = 0;
   Header.e_ehsize = sizeof(Elf_Ehdr);
 
   if (Doc.Header.EPhOff)
diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp
index 520e956fdab9f..a953b10dbfeb8 100644
--- a/llvm/lib/ObjectYAML/ELFYAML.cpp
+++ b/llvm/lib/ObjectYAML/ELFYAML.cpp
@@ -1158,7 +1158,7 @@ void MappingTraits<ELFYAML::FileHeader>::mapping(IO &IO,
   IO.mapOptional("ABIVersion", FileHdr.ABIVersion, Hex8(0));
   IO.mapRequired("Type", FileHdr.Type);
   IO.mapOptional("Machine", FileHdr.Machine);
-  IO.mapOptional("Flags", FileHdr.Flags, ELFYAML::ELF_EF(0));
+  IO.mapOptional("Flags", FileHdr.Flags);
   IO.mapOptional("Entry", FileHdr.Entry, Hex64(0));
   IO.mapOptional("SectionHeaderStringTable", FileHdr.SectionHeaderStringTable);
 
diff --git a/llvm/test/Object/obj2yaml.test b/llvm/test/Object/obj2yaml.test
index dea9cf41eab54..61771f8182a40 100644
--- a/llvm/test/Object/obj2yaml.test
+++ b/llvm/test/Object/obj2yaml.test
@@ -556,6 +556,7 @@
 # ELF-X86-64-NEXT:   OSABI:           ELFOSABI_GNU
 # ELF-X86-64-NEXT:   Type:            ET_REL
 # ELF-X86-64-NEXT:   Machine:         EM_X86_64
+# ELF-X86-64-NEXT:   Flags:           [ ]
 # ELF-X86-64-NEXT: Sections:
 # ELF-X86-64-NEXT:   - Name:            .text
 # ELF-X86-64-NEXT:     Type:            SHT_PROGBITS
diff --git a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
index 5102e0d03be8c..aff687986be7e 100644
--- a/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+++ b/llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
@@ -2,8 +2,8 @@
 # and DWO output.
 # Note that we don't actually need any DWARF to produce the DWO file.
 
-# RUN: yaml2obj -DMACHINE=EM_NONE -DFLAGS="" %s -o %t.o
-# RUN: yaml2obj -DMACHINE=EM_AMDGPU -DFLAGS=EF_AMDGPU_MACH_AMDGCN_GFX900 %s -o %t-amdgpu.o
+# RUN: yaml2obj -DMACHINE=EM_NONE %s -o %t.o
+# RUN: yaml2obj -DMACHINE=EM_AMDGPU -DFLAGS=[EF_AMDGPU_MACH_AMDGCN_GFX900] %s -o %t-amdgpu.o
 
 # Without --output-format, the format should match the input.
 # RUN: llvm-objcopy %t.o %t.default.o --split-dwo=%t.default.dwo
@@ -134,7 +134,7 @@ FileHeader:
   Type:            ET_EXEC
   # Arbitrary values that do not match any value we convert to via --output-format.
   Machine:         [[MACHINE]]
-  Flags:           [ [[FLAGS]] ]
+  Flags:           [[FLAGS=<none>]]
   OSABI:           ELFOSABI_STANDALONE
 Sections:
   - Name:            .text
diff --git a/llvm/test/tools/obj2yaml/ELF/bb-addr-map-pgo-analysis-map.yaml b/llvm/test/tools/obj2yaml/ELF/bb-addr-map-pgo-analysis-map.yaml
index 299bf463cf4bc..1f14d50ec7c81 100644
--- a/llvm/test/tools/obj2yaml/ELF/bb-addr-map-pgo-analysis-map.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/bb-addr-map-pgo-analysis-map.yaml
@@ -10,6 +10,7 @@
 # VALID-NEXT:   Class: ELFCLASS64
 # VALID-NEXT:   Data:  ELFDATA2LSB
 # VALID-NEXT:   Type:  ET_EXEC
+# VALID-NEXT:   Flags: [ ]
 # VALID-NEXT: Sections:
 # VALID-NEXT:   - Name: .llvm_bb_addr_map
 # VALID-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP
@@ -122,6 +123,7 @@ Sections:
 # MULTI-NEXT:   Class: ELFCLASS64
 # MULTI-NEXT:   Data:  ELFDATA2LSB
 # MULTI-NEXT:   Type:  ET_EXEC
+# MULTI-NEXT:   Flags: [ ]
 # MULTI-NEXT: Sections:
 # MULTI-NEXT:   - Name: .llvm_bb_addr_map
 # MULTI-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP
@@ -194,6 +196,7 @@ Sections:
 # INVALID-NEXT:        Class: ELFCLASS64
 # INVALID-NEXT:        Data:  ELFDATA2LSB
 # INVALID-NEXT:        Type:  ET_EXEC
+# INVALID-NEXT:        Flags: [ ]
 # INVALID-NEXT:      Sections:
 # INVALID-NEXT:        - Name:    .llvm_bb_addr_map
 # INVALID-NEXT:          Type:    SHT_LLVM_BB_ADDR_MAP
@@ -225,6 +228,7 @@ Sections:
 # MISSING-FEC-NEXT:        Class: ELFCLASS64
 # MISSING-FEC-NEXT:        Data:  ELFDATA2LSB
 # MISSING-FEC-NEXT:        Type:  ET_EXEC
+# MISSING-FEC-NEXT:        Flags: [ ]
 # MISSING-FEC-NEXT:      Sections:
 # MISSING-FEC-NEXT:        - Name:    .llvm_bb_addr_map
 # MISSING-FEC-NEXT:          Type:    SHT_LLVM_BB_ADDR_MAP
diff --git a/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml b/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
index 8dbf97ef2bc12..904af28bc1852 100644
--- a/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
@@ -10,6 +10,7 @@
 # VALID-NEXT:   Class: ELFCLASS64
 # VALID-NEXT:   Data:  ELFDATA2LSB
 # VALID-NEXT:   Type:  ET_EXEC
+# VALID-NEXT:   Flags: [ ]
 # VALID-NEXT: Sections:
 # VALID-NEXT:   - Name: .llvm_bb_addr_map
 # VALID-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP
@@ -89,6 +90,7 @@ Sections:
 # EMPTY-NEXT:   Class: ELFCLASS64
 # EMPTY-NEXT:   Data:  ELFDATA2LSB
 # EMPTY-NEXT:   Type:  ET_EXEC
+# EMPTY-NEXT:   Flags: [ ]
 # EMPTY-NEXT: Sections:
 # EMPTY-NEXT:   - Name:    .llvm_bb_addr_map
 # EMPTY-NEXT:     Type:    SHT_LLVM_BB_ADDR_MAP
@@ -114,6 +116,7 @@ Sections:
 # MULTI-NEXT:   Class: ELFCLASS64
 # MULTI-NEXT:   Data:  ELFDATA2LSB
 # MULTI-NEXT:   Type:  ET_EXEC
+# MULTI-NEXT:   Flags: [ ]
 # MULTI-NEXT: Sections:
 # MULTI-NEXT:   - Name: .llvm_bb_addr_map
 # MULTI-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP
@@ -178,6 +181,7 @@ Sections:
 # INVALID-NEXT:        Class: ELFCLASS64
 # INVALID-NEXT:        Data:  ELFDATA2LSB
 # INVALID-NEXT:        Type:  ET_EXEC
+# INVALID-NEXT:        Flags: [ ]
 # INVALID-NEXT:      Sections:
 # INVALID-NEXT:        - Name:    .llvm_bb_addr_map
 # INVALID-NEXT:          Type:    SHT_LLVM_BB_ADDR_MAP
diff --git a/llvm/test/tools/obj2yaml/ELF/call-graph-profile-section.yaml b/llvm/test/tools/obj2yaml/ELF/call-graph-profile-section.yaml
index a1ac4d9f58f5c..c6db6c4f0c55d 100644
--- a/llvm/test/tools/obj2yaml/ELF/call-graph-profile-section.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/call-graph-profile-section.yaml
@@ -45,6 +45,7 @@ Symbols:
 # INVALID-NEXT:   Class: ELFCLASS32
 # INVALID-NEXT:   Data:  ELFDATA2MSB
 # INVALID-NEXT:   Type:  ET_DYN
+# INVALID-NEXT:   Flags: [ ]
 # INVALID-NEXT: Sections:
 # INVALID-NEXT:   - Name: .empty
 # INVALID-NEXT:     Type: SHT_LLVM_CALL_GRAPH_PROFILE
diff --git a/llvm/test/tools/obj2yaml/ELF/duplicate-symbol-and-section-names.yaml b/llvm/test/tools/obj2yaml/ELF/duplicate-symbol-and-section-names.yaml
index 97724f72fcd11..3c4f88b368bd6 100644
--- a/llvm/test/tools/obj2yaml/ELF/duplicate-symbol-and-section-names.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/duplicate-symbol-and-section-names.yaml
@@ -27,6 +27,7 @@
 # CASE1-NEXT:   Class: ELFCLASS64
 # CASE1-NEXT:   Data:  ELFDATA2LSB
 # CASE1-NEXT:   Type:  ET_REL
+# CASE1-NEXT:   Flags: [ ]
 # CASE1-NEXT: Sections:
 # CASE1-NEXT:   - Name: .foo
 # CASE1-NEXT:     Type: SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/emachine.yaml b/llvm/test/tools/obj2yaml/ELF/emachine.yaml
index 10d72bed87f4e..fd1ef88b3299d 100644
--- a/llvm/test/tools/obj2yaml/ELF/emachine.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/emachine.yaml
@@ -11,6 +11,7 @@
 # CHECK-NEXT:   Data:    ELFDATA2MSB
 # CHECK-NEXT:   Type:    ET_REL
 # CHECK-NEXT:   Machine: [[MACHINE]]
+# CHECK-NEXT:   Flags:   [ ]
 
 --- !ELF
 FileHeader:
@@ -34,4 +35,5 @@ FileHeader:
 # DEFAULT-NEXT:   Class: ELFCLASS64
 # DEFAULT-NEXT:   Data:  ELFDATA2MSB
 # DEFAULT-NEXT:   Type:  ET_REL
+# DEFAULT-NEXT:   Flags: [ ]
 # DEFAULT-NEXT: ...
diff --git a/llvm/test/tools/obj2yaml/ELF/eshnum.yaml b/llvm/test/tools/obj2yaml/ELF/eshnum.yaml
index 35c7cfddf58c8..ec7779ba74bdf 100644
--- a/llvm/test/tools/obj2yaml/ELF/eshnum.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/eshnum.yaml
@@ -18,6 +18,7 @@
 # PRESERVE-NEXT:   Class:  ELFCLASS64
 # PRESERVE-NEXT:   Data:   ELFDATA2LSB
 # PRESERVE-NEXT:   Type:   ET_REL
+# PRESERVE-NEXT:   Flags:  [ ]
 # PRESERVE-NEXT:   EShNum: 0x0
 # PRESERVE-NEXT: Sections:
 # PRESERVE-NEXT:   - Type: SHT_NULL
@@ -48,6 +49,7 @@ Sections:
 # NO-SECTIONS-NEXT:   Class:  ELFCLASS64
 # NO-SECTIONS-NEXT:   Data:   ELFDATA2LSB
 # NO-SECTIONS-NEXT:   Type:   ET_REL
+# NO-SECTIONS-NEXT:   Flags:  [ ]
 # NO-SECTIONS-NEXT:   EShNum: 0x0
 ## Note: yaml2obj will create the SHT_NULL section with sh_size = 0 implicitly.
 # NO-SECTIONS-NEXT: ...
@@ -64,4 +66,5 @@ Sections:
 # NO-HEADERS-NEXT:   Class: ELFCLASS64
 # NO-HEADERS-NEXT:   Data:  ELFDATA2LSB
 # NO-HEADERS-NEXT:   Type:  ET_REL
+# NO-HEADERS-NEXT:   Flags: [ ]
 # NO-HEADERS-NEXT: ...
diff --git a/llvm/test/tools/obj2yaml/ELF/gnu-unique-symbols.yaml b/llvm/test/tools/obj2yaml/ELF/gnu-unique-symbols.yaml
index c34ab3e3fc0ad..98a220aef50e2 100644
--- a/llvm/test/tools/obj2yaml/ELF/gnu-unique-symbols.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/gnu-unique-symbols.yaml
@@ -9,6 +9,7 @@
 # CHECK-NEXT:   Data:  ELFDATA2LSB
 # CHECK-NEXT:   OSABI: ELFOSABI_GNU
 # CHECK-NEXT:   Type:  ET_REL
+# CHECK-NEXT:   Flags: [ ]
 # CHECK-NEXT: Symbols:
 # CHECK-NEXT:   - Name:    foo
 # CHECK-NEXT:     Type:    STT_OBJECT
diff --git a/llvm/test/tools/obj2yaml/ELF/implicit-sections-order.yaml b/llvm/test/tools/obj2yaml/ELF/implicit-sections-order.yaml
index 11a0a2ad5e07c..a314cac83995a 100644
--- a/llvm/test/tools/obj2yaml/ELF/implicit-sections-order.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/implicit-sections-order.yaml
@@ -37,6 +37,7 @@
 # OUTPUT-NEXT:   Class: ELFCLASS64
 # OUTPUT-NEXT:   Data:  ELFDATA2LSB
 # OUTPUT-NEXT:   Type:  ET_DYN
+# OUTPUT-NEXT:   Flags: [ ]
 # OUTPUT-NEXT: Sections:
 # OUTPUT-NEXT:   - Name: .foo.1
 # OUTPUT-NEXT:     Type: SHT_PROGBITS
@@ -125,6 +126,7 @@ DynamicSymbols:
 # OUTPUT2-NEXT:   Class: ELFCLASS64
 # OUTPUT2-NEXT:   Data:  ELFDATA2LSB
 # OUTPUT2-NEXT:   Type:  ET_DYN
+# OUTPUT2-NEXT:   Flags: [ ]
 # OUTPUT2-NEXT: Sections:
 # OUTPUT2-NEXT:   - Name: .foo.1
 # OUTPUT2-NEXT:     Type: SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/invalid-section-name.yaml b/llvm/test/tools/obj2yaml/ELF/invalid-section-name.yaml
index ffb039fd6d069..3d38061f1f692 100644
--- a/llvm/test/tools/obj2yaml/ELF/invalid-section-name.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/invalid-section-name.yaml
@@ -11,6 +11,7 @@
 # CHECK-NEXT:   Class: ELFCLASS64
 # CHECK-NEXT:   Data:  ELFDATA2LSB
 # CHECK-NEXT:   Type:  ET_REL
+# CHECK-NEXT:   Flags: [ ]
 # CHECK-NEXT:   SectionHeaderStringTable: {{.*}}
 # CHECK-NEXT: Sections:
 # CHECK-NEXT:   - Name: "{{.*}}"
diff --git a/llvm/test/tools/obj2yaml/ELF/mips-eflags.yaml b/llvm/test/tools/obj2yaml/ELF/mips-eflags.yaml
index 9306dbceefccd..58265ebfce6db 100644
--- a/llvm/test/tools/obj2yaml/ELF/mips-eflags.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/mips-eflags.yaml
@@ -258,7 +258,7 @@ FileHeader:
 # RUN: yaml2obj --docnum=25 %s -o %t-arch-1b
 # RUN: obj2yaml %t-arch-1b | FileCheck %s --check-prefix=ARCH-1
 
-# ARCH-1-NOT: Flags:
+# ARCH-1-NOT: Flags: [ ]
 
 --- !ELF
 FileHeader:
diff --git a/llvm/test/tools/obj2yaml/ELF/no-symbol-reloc.yaml b/llvm/test/tools/obj2yaml/ELF/no-symbol-reloc.yaml
index cee843503bc51..e81ef2dc4e4ab 100644
--- a/llvm/test/tools/obj2yaml/ELF/no-symbol-reloc.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/no-symbol-reloc.yaml
@@ -10,6 +10,7 @@
 # CHECK-NEXT:   Data:    ELFDATA2LSB
 # CHECK-NEXT:   Type:    ET_REL
 # CHECK-NEXT:   Machine: EM_X86_64
+# CHECK-NEXT:   Flags:   [ ]
 # CHECK-NEXT: Sections:
 # CHECK-NEXT:   - Name:    .text
 # CHECK-NEXT:     Type:    SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/no-symtab.yaml b/llvm/test/tools/obj2yaml/ELF/no-symtab.yaml
index da0fbbaa1dd77..7ead3ab150208 100644
--- a/llvm/test/tools/obj2yaml/ELF/no-symtab.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/no-symtab.yaml
@@ -9,6 +9,7 @@
 # NOSYMTAB-NEXT:    Class: ELFCLASS64
 # NOSYMTAB-NEXT:    Data:  ELFDATA2LSB
 # NOSYMTAB-NEXT:    Type:  ET_DYN
+# NOSYMTAB-NEXT:    Flags: [ ]
 # NOSYMTAB-NEXT: ...
 
 --- !ELF
@@ -28,6 +29,7 @@ FileHeader:
 # SYMTAB-NEXT:   Class: ELFCLASS64
 # SYMTAB-NEXT:   Data:  ELFDATA2LSB
 # SYMTAB-NEXT:   Type:  ET_DYN
+# SYMTAB-NEXT:   Flags: [ ]
 # SYMTAB-NEXT:  Symbols: []
 # SYMTAB-NEXT: ...
 
diff --git a/llvm/test/tools/obj2yaml/ELF/null-section.yaml b/llvm/test/tools/obj2yaml/ELF/null-section.yaml
index 9a755f4151ffd..723e1ad887dc1 100644
--- a/llvm/test/tools/obj2yaml/ELF/null-section.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/null-section.yaml
@@ -9,6 +9,7 @@
 # FIRST-SEC-NEXT:   Class: ELFCLASS64
 # FIRST-SEC-NEXT:   Data:  ELFDATA2LSB
 # FIRST-SEC-NEXT:   Type:  ET_REL
+# FIRST-SEC-NEXT:   Flags: [ ]
 # FIRST-SEC-NEXT: Sections:
 # FIRST-SEC-NEXT:   - Type:         SHT_NULL
 # FIRST-SEC-NEXT:     Flags:        [ SHF_ALLOC ]
@@ -50,6 +51,7 @@ Sections:
 # SECOND-SEC-NEXT:   Class: ELFCLASS64
 # SECOND-SEC-NEXT:   Data:  ELFDATA2LSB
 # SECOND-SEC-NEXT:   Type:  ET_REL
+# SECOND-SEC-NEXT:   Flags: [ ]
 # SECOND-SEC-NEXT: Sections:
 # SECOND-SEC-NEXT:   - Name:         .foo
 # SECOND-SEC-NEXT:     Type:         SHT_PROGBITS
@@ -92,6 +94,7 @@ Sections:
 # NULL-SEC-NEXT:   Class: ELFCLASS64
 # NULL-SEC-NEXT:   Data:  ELFDATA2LSB
 # NULL-SEC-NEXT:   Type:  ET_REL
+# NULL-SEC-NEXT:   Flags: [ ]
 # NULL-SEC-NEXT: Sections:
 # NULL-SEC-NEXT:   - Name: .foo
 # NULL-SEC-NEXT:     Type: SHT_PROGBITS
@@ -118,6 +121,7 @@ Sections:
 # NULL-SEC-MIDDLE-NEXT:   Class: ELFCLASS64
 # NULL-SEC-MIDDLE-NEXT:   Data:  ELFDATA2LSB
 # NULL-SEC-MIDDLE-NEXT:   Type:  ET_REL
+# NULL-SEC-MIDDLE-NEXT:   Flags: [ ]
 # NULL-SEC-MIDDLE-NEXT: Sections:
 # NULL-SEC-MIDDLE-NEXT:   - Name: .foo
 # NULL-SEC-MIDDLE-NEXT:     Type: SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/offset.yaml b/llvm/test/tools/obj2yaml/ELF/offset.yaml
index 47970a07535c3..55ade2f95182c 100644
--- a/llvm/test/tools/obj2yaml/ELF/offset.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/offset.yaml
@@ -10,6 +10,7 @@
 #   BASIC-NEXT:   Class: ELFCLASS64
 #   BASIC-NEXT:   Data:  ELFDATA2LSB
 #   BASIC-NEXT:   Type:  ET_REL
+#   BASIC-NEXT:   Flags: [ ]
 #   BASIC-NEXT: Sections:
 #   BASIC-NEXT:   - Name:         .foo1
 #   BASIC-NEXT:     Type:         SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/ppc64-relocations.yaml b/llvm/test/tools/obj2yaml/ELF/ppc64-relocations.yaml
index e476242eb1c67..f8820f56ffd23 100644
--- a/llvm/test/tools/obj2yaml/ELF/ppc64-relocations.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/ppc64-relocations.yaml
@@ -9,6 +9,7 @@
 # CHECK-NEXT:   Data:    ELFDATA2MSB
 # CHECK-NEXT:   Type:    ET_REL
 # CHECK-NEXT:   Machine: EM_PPC64
+# CHECK-NEXT:   Flags:   [ ]
 # CHECK-NEXT: Sections:
 # CHECK-NEXT:   - Name: .rela.text
 # CHECK-NEXT:     Type: SHT_RELA
diff --git a/llvm/test/tools/obj2yaml/ELF/relocation-type.yaml b/llvm/test/tools/obj2yaml/ELF/relocation-type.yaml
index 22e859465a671..9b601107c1835 100644
--- a/llvm/test/tools/obj2yaml/ELF/relocation-type.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/relocation-type.yaml
@@ -10,6 +10,7 @@
 # CHECK-NEXT:   Data:    ELFDATA2MSB
 # CHECK-NEXT:   Type:    ET_REL
 # CHECK-NEXT:   Machine: [[MACHINE]]
+# CHECK-NEXT:   Flags:   [ ]
 # CHECK-NEXT: Sections:
 # CHECK-NEXT:   - Name:    .rela.text
 # CHECK-NEXT:     Type:    SHT_RELA
diff --git a/llvm/test/tools/obj2yaml/ELF/shstrtab.yaml b/llvm/test/tools/obj2yaml/ELF/shstrtab.yaml
index daea0dc8f7d58..3b81b404abf05 100644
--- a/llvm/test/tools/obj2yaml/ELF/shstrtab.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/shstrtab.yaml
@@ -13,6 +13,7 @@
 # CUSTOM-NEXT:   Class:           ELFCLASS64
 # CUSTOM-NEXT:   Data:            ELFDATA2LSB
 # CUSTOM-NEXT:   Type:            ET_EXEC
+# CUSTOM-NEXT:   Flags:           [ ]
 # CUSTOM-NEXT:   SectionHeaderStringTable: .foo
 # CUSTOM-NEXT: ...
 
@@ -45,6 +46,7 @@ Sections:
 # XINDEX-NEXT:   Class:           ELFCLASS64
 # XINDEX-NEXT:   Data:            ELFDATA2LSB
 # XINDEX-NEXT:   Type:            ET_EXEC
+# XINDEX-NEXT:   Flags:           [ ]
 # XINDEX-NEXT:   SectionHeaderStringTable: .foo
 # XINDEX-NEXT: Sections:
 # XINDEX-NEXT:   - Type:            SHT_NULL
@@ -63,6 +65,7 @@ Sections:
 # STRTAB-NEXT:   Class:           ELFCLASS64
 # STRTAB-NEXT:   Data:            ELFDATA2LSB
 # STRTAB-NEXT:   Type:            ET_EXEC
+# STRTAB-NEXT:   Flags:           [ ]
 # STRTAB-NEXT:   SectionHeaderStringTable: .strtab
 # STRTAB-NEXT: Symbols:
 # STRTAB-NEXT:   - Name:            boz
@@ -91,6 +94,7 @@ Symbols:
 # DYNSTR-NEXT:   Class:           ELFCLASS64
 # DYNSTR-NEXT:   Data:            ELFDATA2LSB
 # DYNSTR-NEXT:   Type:            ET_EXEC
+# DYNSTR-NEXT:   Flags:           [ ]
 # DYNSTR-NEXT:   SectionHeaderStringTable: .dynstr
 # DYNSTR-NEXT: Sections:
 # DYNSTR-NEXT:   - Name:            .dynsym
@@ -127,6 +131,7 @@ DynamicSymbols:
 # DEFAULT-NEXT:   Class:           ELFCLASS64
 # DEFAULT-NEXT:   Data:            ELFDATA2LSB
 # DEFAULT-NEXT:   Type:            ET_EXEC
+# DEFAULT-NEXT:   Flags:           [ ]
 # DEFAULT-NEXT: ...
 
 --- !ELF
@@ -156,6 +161,7 @@ Sections:
 # DEFXINDEX-NEXT:   Class:           ELFCLASS64
 # DEFXINDEX-NEXT:   Data:            ELFDATA2LSB
 # DEFXINDEX-NEXT:   Type:            ET_EXEC
+# DEFXINDEX-NEXT:   Flags:           [ ]
 # DEFXINDEX-NEXT: Sections:
 # DEFXINDEX-NEXT:   - Type:            SHT_NULL
 # DEFXINDEX-NEXT:     Link:            .shstrtab
@@ -181,6 +187,7 @@ Sections:
 # NOHDRS-NEXT:   Class:  ELFCLASS64
 # NOHDRS-NEXT:   Data:   ELFDATA2LSB
 # NOHDRS-NEXT:   Type:   ET_EXEC
+# NOHDRS-NEXT:   Flags:  [ ]
 ## FIXME: There should be a SectionHeaderTable key as per the input.
 # NOHDRS-NEXT: ...
 
@@ -195,6 +202,7 @@ Sections:
 # REORDER-NEXT:   Class:           ELFCLASS64
 # REORDER-NEXT:   Data:            ELFDATA2LSB
 # REORDER-NEXT:   Type:            ET_EXEC
+# REORDER-NEXT:   Flags:           [ ]
 # REORDER-NEXT:   SectionHeaderStringTable: .foo
 # REORDER-NEXT: Sections:
 # REORDER-NEXT:   - Name:            .baz
@@ -243,6 +251,7 @@ Sections:
 # PLACED-NEXT:   Class:           ELFCLASS64
 # PLACED-NEXT:   Data:            ELFDATA2LSB
 # PLACED-NEXT:   Type:            ET_EXEC
+# PLACED-NEXT:   Flags:           [ ]
 # PLACED-NEXT:   SectionHeaderStringTable: .foo
 # PLACED-NEXT: Sections:
 # PLACED-NEXT:   - Name:            .baz
@@ -275,6 +284,7 @@ Sections:
 # PROPS-NEXT:   Class: ELFCLASS64
 # PROPS-NEXT:   Data:  ELFDATA2LSB
 # PROPS-NEXT:   Type:  ET_EXEC
+# PROPS-NEXT:   Flags: [ ]
 # PROPS-NEXT:   SectionHeaderStringTable: .foo
 # PROPS-NEXT: Sections:
 # PROPS-NEXT:   - Name:  .foo
@@ -322,6 +332,7 @@ Sections:
 # UNIQUIFY1-NEXT:   Class: ELFCLASS64
 # UNIQUIFY1-NEXT:   Data:  ELFDATA2LSB
 # UNIQUIFY1-NEXT:   Type:  ET_EXEC
+# UNIQUIFY1-NEXT:   Flags: [ ]
 # UNIQUIFY1-NEXT:   SectionHeaderStringTable: '.strings (1)'
 # UNIQUIFY1-NEXT: Sections:
 # UNIQUIFY1-NEXT:   - Name:  .strings
@@ -349,6 +360,7 @@ Sections:
 # UNIQUIFY2-NEXT:   Class: ELFCLASS64
 # UNIQUIFY2-NEXT:   Data:  ELFDATA2LSB
 # UNIQUIFY2-NEXT:   Type:  ET_EXEC
+# UNIQUIFY2-NEXT:   Flags: [ ]
 # UNIQUIFY2-NEXT:   SectionHeaderStringTable: '[[NAME]] (1)'
 # UNIQUIFY2-NEXT: Symbols:
 # UNIQUIFY2-NEXT:   - Name:  foo
@@ -380,6 +392,7 @@ Symbols:
 # UNIQUIFY3-NEXT:   Class: ELFCLASS64
 # UNIQUIFY3-NEXT:   Data:  ELFDATA2LSB
 # UNIQUIFY3-NEXT:   Type:  ET_EXEC
+# UNIQUIFY3-NEXT:   Flags: [ ]
 # UNIQUIFY3-NEXT:   SectionHeaderStringTable: '[[NAME]] (1)'
 ## FIXME: The .dynsym and .dynstr sections shouldn't need to be emitted, since
 ##        their values are the default produced by yaml2obj.
@@ -428,6 +441,7 @@ DynamicSymbols:
 # UNIQUIFY6-NEXT:   Class:           ELFCLASS64
 # UNIQUIFY6-NEXT:   Data:            ELFDATA2LSB
 # UNIQUIFY6-NEXT:   Type:            ET_EXEC
+# UNIQUIFY6-NEXT:   Flags: [ ]
 # UNIQUIFY6-NEXT:   SectionHeaderStringTable: '.debug_str (1)'
 # UNIQUIFY6-NEXT: DWARF:
 # UNIQUIFY6-NEXT:   debug_str:
diff --git a/llvm/test/tools/obj2yaml/ELF/sht-symtab-shndx.yaml b/llvm/test/tools/obj2yaml/ELF/sht-symtab-shndx.yaml
index 6e995cce96f01..737448014d464 100644
--- a/llvm/test/tools/obj2yaml/ELF/sht-symtab-shndx.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/sht-symtab-shndx.yaml
@@ -10,6 +10,7 @@
 # CASE1-NEXT:   Class: ELFCLASS64
 # CASE1-NEXT:   Data:  ELFDATA2LSB
 # CASE1-NEXT:   Type:  ET_REL
+# CASE1-NEXT:   Flags: [ ]
 # CASE1-NEXT: Sections:
 # CASE1-NEXT:   - Name: bar
 # CASE1-NEXT:     Type: SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml b/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
index 13d13a8d86a58..0114d56b0eba1 100644
--- a/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/stack-sizes.yaml
@@ -11,6 +11,7 @@
 # VALID-NEXT:   Class: ELFCLASS64
 # VALID-NEXT:   Data:  ELFDATA2LSB
 # VALID-NEXT:   Type:  ET_EXEC
+# VALID-NEXT:   Flags: [ ]
 # VALID-NEXT: Sections:
 # VALID-NEXT:   - Name: .stack_sizes
 # VALID-NEXT:     Type: SHT_PROGBITS
@@ -41,6 +42,7 @@ Sections:
 # INVALID-NEXT:   Class: ELFCLASS64
 # INVALID-NEXT:   Data:  ELFDATA2LSB
 # INVALID-NEXT:   Type:  ET_EXEC
+# INVALID-NEXT:   Flags: [ ]
 # INVALID-NEXT: Sections:
 # INVALID-NEXT:   - Name:    .stack_sizes
 # INVALID-NEXT:     Type:    SHT_PROGBITS
@@ -66,6 +68,7 @@ Sections:
 # EMPTY-NEXT:   Class: ELFCLASS64
 # EMPTY-NEXT:   Data:  ELFDATA2LSB
 # EMPTY-NEXT:   Type:  ET_EXEC
+# EMPTY-NEXT:   Flags: [ ]
 # EMPTY-NEXT: Sections:
 # EMPTY-NEXT:   - Name:    .stack_sizes
 # EMPTY-NEXT:     Type:    SHT_PROGBITS
@@ -91,6 +94,7 @@ Sections:
 # MULTI-NEXT:   Class: ELFCLASS64
 # MULTI-NEXT:   Data:  ELFDATA2LSB
 # MULTI-NEXT:   Type:  ET_EXEC
+# MULTI-NEXT:   Flags: [ ]
 # MULTI-NEXT: Sections:
 # MULTI-NEXT:   - Name:    .stack_sizes
 # MULTI-NEXT:     Type:    SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/symbol-visibility.yaml b/llvm/test/tools/obj2yaml/ELF/symbol-visibility.yaml
index 0c6020062fab2..d91396153c110 100644
--- a/llvm/test/tools/obj2yaml/ELF/symbol-visibility.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/symbol-visibility.yaml
@@ -7,6 +7,7 @@
 # CHECK-NEXT:   Class: ELFCLASS64
 # CHECK-NEXT:   Data:  ELFDATA2LSB
 # CHECK-NEXT:   Type:  ET_REL
+# CHECK-NEXT:   Flags: [ ]
 # CHECK-NEXT: Symbols:
 # CHECK-NEXT:   - Name: default
 # CHECK-NEXT:   - Name: internal
diff --git a/llvm/test/tools/obj2yaml/ELF/symbol.yaml b/llvm/test/tools/obj2yaml/ELF/symbol.yaml
index 3afe2d13d162e..790d1db0e5198 100644
--- a/llvm/test/tools/obj2yaml/ELF/symbol.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/symbol.yaml
@@ -38,6 +38,7 @@ Symbols:
 # SECTION-SYM-NEXT:   Class: ELFCLASS64
 # SECTION-SYM-NEXT:   Data:  ELFDATA2LSB
 # SECTION-SYM-NEXT:   Type:  ET_REL
+# SECTION-SYM-NEXT:   Flags: [ ]
 # SECTION-SYM-NEXT: Sections:
 # SECTION-SYM-NEXT:   - Name: .section
 # SECTION-SYM-NEXT:     Type: SHT_PROGBITS
diff --git a/llvm/test/tools/obj2yaml/ELF/versym-section.yaml b/llvm/test/tools/obj2yaml/ELF/versym-section.yaml
index fcdb2aad6c64b..5796c55e71772 100644
--- a/llvm/test/tools/obj2yaml/ELF/versym-section.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/versym-section.yaml
@@ -8,6 +8,7 @@
 # CHECK-NEXT:   Class: ELFCLASS64
 # CHECK-NEXT:   Data:  ELFDATA2LSB
 # CHECK-NEXT:   Type:  ET_EXEC
+# CHECK-NEXT:   Flags:  [ ]
 # CHECK-NEXT:   Entry: 0x201000
 # CHECK-NEXT: Sections:
 # CHECK-NEXT:   - Name:         .gnu.version



More information about the llvm-commits mailing list