[llvm] r372578 - [llvm-readobj] - Stop treating ".stack_sizes.*" sections as stack sizes sections.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 23 03:43:09 PDT 2019
Author: grimar
Date: Mon Sep 23 03:43:09 2019
New Revision: 372578
URL: http://llvm.org/viewvc/llvm-project?rev=372578&view=rev
Log:
[llvm-readobj] - Stop treating ".stack_sizes.*" sections as stack sizes sections.
llvm-readobj currently handles .stack_sizes.* (e.g. .stack_sizes.foo)
as a normal stack sizes section. Though MC does not produce sections with
such names. Also, linkers do not combine .stack_sizes.* into .stack_sizes.
A mini discussion about this correctness issue is here: https://reviews.llvm.org/D67757#inline-609274
This patch changes implementation so that only now only '.stack_sizes' name is
accepted as a real stack sizes section.
Differential revision: https://reviews.llvm.org/D67824
Modified:
llvm/trunk/test/tools/llvm-readobj/stack-sizes.test
llvm/trunk/tools/llvm-readobj/ELFDumper.cpp
Modified: llvm/trunk/test/tools/llvm-readobj/stack-sizes.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-readobj/stack-sizes.test?rev=372578&r1=372577&r2=372578&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-readobj/stack-sizes.test (original)
+++ llvm/trunk/test/tools/llvm-readobj/stack-sizes.test Mon Sep 23 03:43:09 2019
@@ -48,7 +48,7 @@ Sections:
## followed by a ULEB for the size.
Content: "000000000000000010000000000000000020"
Link: .text
- - Name: .stack_sizes.baz
+ - Name: '.stack_sizes [1]'
Type: SHT_PROGBITS
## One stack size entry.
Content: "200000000000000008"
@@ -66,9 +66,9 @@ Sections:
Addend: 16
Symbol: .text
Type: R_X86_64_64
- - Name: .rela.stack_sizes.baz
+ - Name: '.rela.stack_sizes [1]'
Type: SHT_RELA
- Info: .stack_sizes.baz
+ Info: '.stack_sizes [1]'
Relocations:
- Offset: 0
Symbol: separate_text_section_baz
Modified: llvm/trunk/tools/llvm-readobj/ELFDumper.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp?rev=372578&r1=372577&r2=372578&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (original)
+++ llvm/trunk/tools/llvm-readobj/ELFDumper.cpp Mon Sep 23 03:43:09 2019
@@ -4829,7 +4829,7 @@ void DumpStyle<ELFT>::printNonRelocatabl
StringRef FileStr = Obj->getFileName();
for (const SectionRef &Sec : Obj->sections()) {
StringRef SectionName = getSectionName(Sec);
- if (!SectionName.startswith(".stack_sizes"))
+ if (SectionName != ".stack_sizes")
continue;
PrintHeader();
const Elf_Shdr *ElfSec = Obj->getSection(Sec.getRawDataRefImpl());
@@ -4879,7 +4879,7 @@ void DumpStyle<ELFT>::printRelocatableSt
// A stack size section that we haven't encountered yet is mapped to the
// null section until we find its corresponding relocation section.
- if (SectionName.startswith(".stack_sizes"))
+ if (SectionName == ".stack_sizes")
if (StackSizeRelocMap.count(Sec) == 0) {
StackSizeRelocMap[Sec] = NullSection;
continue;
@@ -4900,7 +4900,7 @@ void DumpStyle<ELFT>::printRelocatableSt
consumeError(ContentsSectionNameOrErr.takeError());
continue;
}
- if (!ContentsSectionNameOrErr->startswith(".stack_sizes"))
+ if (*ContentsSectionNameOrErr != ".stack_sizes")
continue;
// Insert a mapping from the stack sizes section to its relocation section.
StackSizeRelocMap[Obj->toSectionRef(ContentsSec)] = Sec;
More information about the llvm-commits
mailing list