From 1fc1bab8a80df6e8fe14be177787be855b979022 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Tue, 17 Dec 2013 06:15:09 +0000 Subject: [PECOFF] Truncate long section name. Executable files do not use a string table, so section names longer than 8 characters are not permitted. Long section names should just be truncated. llvm-svn: 197470 --- lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp') diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp index aff6536d560..05621416015 100644 --- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp +++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp @@ -631,12 +631,9 @@ llvm::object::coff_section SectionHeaderTableChunk::createSectionHeader(SectionChunk *chunk) { llvm::object::coff_section header; - // Section name equal to or shorter than 8 byte fits in the section - // header. Longer names should be stored to string table, which is not - // implemented yet. + // Section name must be equal to or less than 8 characters in the + // executable. Longer names will be truncated. StringRef sectionName = chunk->getSectionName(); - if (sizeof(header.Name) < sectionName.size()) - llvm_unreachable("Cannot handle section name longer than 8 byte"); // Name field must be NUL-padded. If the name is exactly 8 byte long, // there's no terminating NUL. -- cgit v1.2.3