diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2017-05-23 22:54:06 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2017-05-23 22:54:06 +0000 |
| commit | aeb4b7d217dae0ad2d29a5aa9a67cf2309432522 (patch) | |
| tree | c178714cd8705d1f1903c185bec6d20c2727e39b /lld/ELF/MapFile.cpp | |
| parent | 6a1aa8d9b451b9d9f1452e86ce0b02993b8fae36 (diff) | |
| download | bcm5719-llvm-aeb4b7d217dae0ad2d29a5aa9a67cf2309432522.tar.gz bcm5719-llvm-aeb4b7d217dae0ad2d29a5aa9a67cf2309432522.zip | |
Clear OutSec->Sections.
Once the dummy linker script is created, we want it to be used for
everything to avoid having two redundant representations that can get
out of sync.
We were already clearing OutputSections. With this patch we clear the
Sections vector of every OutputSection.
llvm-svn: 303703
Diffstat (limited to 'lld/ELF/MapFile.cpp')
| -rw-r--r-- | lld/ELF/MapFile.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lld/ELF/MapFile.cpp b/lld/ELF/MapFile.cpp index 7b82eceba02..806e99e3d9d 100644 --- a/lld/ELF/MapFile.cpp +++ b/lld/ELF/MapFile.cpp @@ -132,12 +132,17 @@ void elf::writeMapFile(llvm::ArrayRef<BaseCommand *> Script) { OS << OSec->Name << '\n'; // Dump symbols for each input section. - for (InputSection *IS : OSec->Sections) { - writeHeader<ELFT>(OS, OSec->Addr + IS->OutSecOff, IS->getSize(), - IS->Alignment); - OS << indent(1) << toString(IS) << '\n'; - for (DefinedRegular *Sym : SectionSyms[IS]) - OS << SymStr[Sym] << '\n'; + for (BaseCommand *Base : Cmd->Commands) { + auto *ISD = dyn_cast<InputSectionDescription>(Base); + if (!ISD) + continue; + for (InputSection *IS : ISD->Sections) { + writeHeader<ELFT>(OS, OSec->Addr + IS->OutSecOff, IS->getSize(), + IS->Alignment); + OS << indent(1) << toString(IS) << '\n'; + for (DefinedRegular *Sym : SectionSyms[IS]) + OS << SymStr[Sym] << '\n'; + } } } } |

