[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