[lld] r239233 - COFF: Add .didat section.
Rui Ueyama
ruiu at google.com
Sat Jun 6 16:07:01 PDT 2015
Author: ruiu
Date: Sat Jun 6 18:07:01 2015
New Revision: 239233
URL: http://llvm.org/viewvc/llvm-project?rev=239233&view=rev
Log:
COFF: Add .didat section.
Modified:
lld/trunk/COFF/Writer.cpp
Modified: lld/trunk/COFF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Writer.cpp?rev=239233&r1=239232&r2=239233&view=diff
==============================================================================
--- lld/trunk/COFF/Writer.cpp (original)
+++ lld/trunk/COFF/Writer.cpp Sat Jun 6 18:07:01 2015
@@ -339,21 +339,25 @@ uint32_t Writer::getSizeOfInitializedDat
OutputSection *Writer::createSection(StringRef Name) {
if (auto *Sec = findSection(Name))
return Sec;
+ const auto DATA = IMAGE_SCN_CNT_INITIALIZED_DATA;
+ const auto BSS = IMAGE_SCN_CNT_UNINITIALIZED_DATA;
+ const auto CODE = IMAGE_SCN_CNT_CODE;
const auto R = IMAGE_SCN_MEM_READ;
const auto W = IMAGE_SCN_MEM_WRITE;
const auto E = IMAGE_SCN_MEM_EXECUTE;
- uint32_t Perm = StringSwitch<uint32_t>(Name)
- .Case(".bss", IMAGE_SCN_CNT_UNINITIALIZED_DATA | R | W)
- .Case(".data", IMAGE_SCN_CNT_INITIALIZED_DATA | R | W)
- .Case(".idata", IMAGE_SCN_CNT_INITIALIZED_DATA | R)
- .Case(".rdata", IMAGE_SCN_CNT_INITIALIZED_DATA | R)
- .Case(".text", IMAGE_SCN_CNT_CODE | R | E)
- .Default(0);
- if (!Perm)
+ uint32_t Perms = StringSwitch<uint32_t>(Name)
+ .Case(".bss", BSS | R | W)
+ .Case(".data", DATA | R | W)
+ .Case(".didat", DATA | R)
+ .Case(".idata", DATA | R)
+ .Case(".rdata", DATA | R)
+ .Case(".text", CODE | R | E)
+ .Default(0);
+ if (!Perms)
llvm_unreachable("unknown section name");
size_t SectIdx = OutputSections.size();
auto Sec = new (CAlloc.Allocate()) OutputSection(Name, SectIdx);
- Sec->addPermissions(Perm);
+ Sec->addPermissions(Perms);
OutputSections.push_back(Sec);
return Sec;
}
More information about the llvm-commits
mailing list