[PATCH] D76684: [obj2yaml] - Refactor how we dump sections. NFCI.
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 25 03:13:13 PDT 2020
grimar added inline comments.
================
Comment at: llvm/tools/obj2yaml/elf2yaml.cpp:119-120
StringRef Name = *NameOrErr;
+ if (Name.empty())
+ return "";
+
----------------
jhenderson wrote:
> Could you explain this case, please, perhaps with a comment in the code?
It is for `obj2yaml\elf-null-section.yaml`. We have the following YAML description there:
```
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Type: SHT_PROGBITS
Name: .foo
- Type: SHT_NULL
Name: ''
Flags: [ SHF_ALLOC ]
Link: 1
Info: 2
AddressAlign: 0x3
Size: 0x4
EntSize: 0x5
Address: 0x6
```
Note: SHT_NULL has empty name and it is the second `SHT_NULL` section in the object.
(first one is one at index 0, created implicitly).
We expect that obj2yaml produce the following;
```
# SECOND-SEC-NEXT: - Type: SHT_NULL
# SECOND-SEC-NEXT: Flags: [ SHF_ALLOC ]
# SECOND-SEC-NEXT: Address: 0x0000000000000006
# SECOND-SEC-NEXT: Link: .foo
# SECOND-SEC-NEXT: AddressAlign: 0x0000000000000003
# SECOND-SEC-NEXT: EntSize: 0x0000000000000005
# SECOND-SEC-NEXT: Content: '00000000'
# SECOND-SEC-NEXT: Info: 0x0000000000000002
```
But now since we started to dump `SHT_NULL` sections (we remove it later), obj2yaml produces:
```
- Name: ' [1]'
```
But it doesn't make sense I think. We should not uniquify empty names. I see no reasons for that.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76684/new/
https://reviews.llvm.org/D76684
More information about the llvm-commits
mailing list