Skip to content

Commit

Permalink
MC: mark COFF .drectve section as REMOVE
Browse files Browse the repository at this point in the history
The .drectve section should be marked as IMAGE_SCN_LNK_REMOVE.  This matches what
the MSVC toolchain does and accurately reflects that this section should not be
emitted into the final binary.  This section is merely information for the
linker, comprising of additional linker directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209273 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
compnerd committed May 21, 2014
1 parent 651f680 commit 8235ed1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/MC/MCObjectFileInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ void MCObjectFileInfo::InitCOFFMCObjectFileInfo(Triple T) {

DrectveSection =
Ctx->getCOFFSection(".drectve",
COFF::IMAGE_SCN_LNK_INFO,
COFF::IMAGE_SCN_LNK_INFO | COFF::IMAGE_SCN_LNK_REMOVE,
SectionKind::getMetadata());

PDataSection =
Expand Down
17 changes: 17 additions & 0 deletions test/MC/COFF/directive-section-characteristics.ll
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
; RUN: llc -mtriple i686-windows -filetype obj -o - %s | llvm-readobj -sections \
; RUN: | FileCheck %s

define dllexport void @function() {
entry:
ret void
}

; CHECK: Section {
; CHECK: Name: .drectve
; CHECK: Characteristics [
; CHECK: IMAGE_SCN_ALIGN_1BYTES
; CHECK: IMAGE_SCN_LNK_INFO
; CHECK: IMAGE_SCN_LNK_REMOVE
; CHECK: ]
; CHECK: }

0 comments on commit 8235ed1

Please sign in to comment.