[llvm-commits] [llvm] r173007 - /llvm/trunk/include/llvm/Object/ELF.h

Michael J. Spencer bigcheesegs at gmail.com
Sun Jan 20 22:46:11 PST 2013


Author: mspencer
Date: Mon Jan 21 00:46:11 2013
New Revision: 173007

URL: http://llvm.org/viewvc/llvm-project?rev=173007&view=rev
Log:
[Object] .bss sections have no content. PR15005.

Modified:
    llvm/trunk/include/llvm/Object/ELF.h

Modified: llvm/trunk/include/llvm/Object/ELF.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELF.h?rev=173007&r1=173006&r2=173007&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/ELF.h (original)
+++ llvm/trunk/include/llvm/Object/ELF.h Mon Jan 21 00:46:11 2013
@@ -1260,16 +1260,18 @@
 error_code ELFObjectFile<ELFT>::getSectionContents(DataRefImpl Sec,
                                                    StringRef &Result) const {
   const Elf_Shdr *sec = reinterpret_cast<const Elf_Shdr *>(Sec.p);
-  const char *start = (const char*)base() + sec->sh_offset;
-  Result = StringRef(start, sec->sh_size);
-  return object_error::success;
+  return getSectionContents(sec, Result);
 }
 
 template<class ELFT>
 error_code ELFObjectFile<ELFT>::getSectionContents(const Elf_Shdr *Sec,
                                                    StringRef &Result) const {
-  const char *start = (const char*)base() + Sec->sh_offset;
-  Result = StringRef(start, Sec->sh_size);
+  if (Sec->sh_type == ELF::SHT_NOBITS)
+    Result = StringRef();
+  else {
+    const char *start = (const char*)base() + Sec->sh_offset;
+    Result = StringRef(start, Sec->sh_size);
+  }
   return object_error::success;
 }
 





More information about the llvm-commits mailing list