diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-19 19:52:52 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-19 19:52:52 +0000 |
commit | 60ec3836a2c10cf96526ad499af171f3b1c9b170 (patch) | |
tree | 74c81024d1a050d2fe5e9b37957bd73ec5b8cf62 /llvm/lib/MC/WinCOFFStreamer.cpp | |
parent | b79d4f82e854bd951e1ac280490f2d632dae08c3 (diff) | |
download | bcm5719-llvm-60ec3836a2c10cf96526ad499af171f3b1c9b170.tar.gz bcm5719-llvm-60ec3836a2c10cf96526ad499af171f3b1c9b170.zip |
Support multiple COFF sections with the same name but different COMDAT.
This is the first step to fix pr17918.
It extends the .section directive a bit, inspired by what the ELF one looks
like. The problem with using linkonce is that given
.section foo
.linkonce....
.section foo
.linkonce
we would already have switched sections when getting to .linkonce. The cleanest
solution seems to be to add the comdat information in the .section itself.
llvm-svn: 195148
Diffstat (limited to 'llvm/lib/MC/WinCOFFStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/WinCOFFStreamer.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/MC/WinCOFFStreamer.cpp b/llvm/lib/MC/WinCOFFStreamer.cpp index 6744df5c91f..7fc114cbff8 100644 --- a/llvm/lib/MC/WinCOFFStreamer.cpp +++ b/llvm/lib/MC/WinCOFFStreamer.cpp @@ -151,7 +151,8 @@ void WinCOFFStreamer::AddCommonSymbol(MCSymbol *Symbol, uint64_t Size, int Selection = COFF::IMAGE_COMDAT_SELECT_LARGEST; const MCSection *Section = MCStreamer::getContext().getCOFFSection( - SectionName, Characteristics, SectionKind::getBSS(), Selection); + SectionName, Characteristics, SectionKind::getBSS(), Symbol->getName(), + Selection); MCSectionData &SectionData = getAssembler().getOrCreateSectionData(*Section); |