This allows to set custom Info field value for SHT_GROUP sections.
It is useful to allow this because we would be able to replace at least one binary
object committed in LLD and replace it with the yaml2obj based test.
Differential revision: https://reviews.llvm.org/D50776
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@339772
91177308-0d34-0410-b5e6-
96231b3b80d8
--- /dev/null
+# RUN: yaml2obj %s -o %t
+# RUN: llvm-readobj -sections %t | FileCheck %s
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .group
+ Type: SHT_GROUP
+ Link: .symtab
+ Info: 12345
+ Members:
+ - SectionOrType: GRP_COMDAT
+
+## Check we are able to produce SHT_GROUP section with a custom Info value (12345).
+# CHECK: Name: .group
+# CHECK-NEXT: Type: SHT_GROUP
+# CHECK-NEXT: Flags [
+# CHECK-NEXT: ]
+# CHECK-NEXT: Address:
+# CHECK-NEXT: Offset:
+# CHECK-NEXT: Size:
+# CHECK-NEXT: Link:
+# CHECK-NEXT: Info: 12345
return false;
} else if (auto S = dyn_cast<ELFYAML::Group>(Sec.get())) {
unsigned SymIdx;
- if (SymN2I.lookup(S->Info, SymIdx)) {
+ if (SymN2I.lookup(S->Info, SymIdx) && !to_integer(S->Info, SymIdx)) {
WithColor::error() << "Unknown symbol referenced: '" << S->Info
<< "' at YAML section '" << S->Name << "'.\n";
return false;