mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
[-cxx-abi microsoft] Stick zero initialized symbols into the .bss section for COFF
Summary: We need to do two things: - Initialize BSSSection in MCObjectFileInfo::InitCOFFMCObjectFileInfo - Teach TargetLoweringObjectFileCOFF::SelectSectionForGlobal what to do with it This fixes PR16861. Reviewers: rnk Reviewed By: rnk CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1361 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188244 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0710bfa866
commit
6aa9315353
@ -771,15 +771,18 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
|
||||
}
|
||||
|
||||
if (Kind.isText())
|
||||
return getTextSection();
|
||||
return TextSection;
|
||||
|
||||
if (Kind.isThreadLocal())
|
||||
return getTLSDataSection();
|
||||
return TLSDataSection;
|
||||
|
||||
if (Kind.isReadOnly() && ReadOnlySection != 0)
|
||||
if (Kind.isReadOnly())
|
||||
return ReadOnlySection;
|
||||
|
||||
return getDataSection();
|
||||
if (Kind.isBSS())
|
||||
return BSSSection;
|
||||
|
||||
return DataSection;
|
||||
}
|
||||
|
||||
void TargetLoweringObjectFileCOFF::
|
||||
|
@ -496,6 +496,12 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
|
||||
|
||||
void MCObjectFileInfo::InitCOFFMCObjectFileInfo(Triple T) {
|
||||
// COFF
|
||||
BSSSection =
|
||||
Ctx->getCOFFSection(".bss",
|
||||
COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA |
|
||||
COFF::IMAGE_SCN_MEM_READ |
|
||||
COFF::IMAGE_SCN_MEM_WRITE,
|
||||
SectionKind::getBSS());
|
||||
TextSection =
|
||||
Ctx->getCOFFSection(".text",
|
||||
COFF::IMAGE_SCN_CNT_CODE |
|
||||
|
6
test/MC/COFF/bss_section.ll
Normal file
6
test/MC/COFF/bss_section.ll
Normal file
@ -0,0 +1,6 @@
|
||||
; RUN: llc -mtriple i386-pc-win32 < %s | FileCheck %s
|
||||
|
||||
%struct.foo = type { i32, i32 }
|
||||
|
||||
@"\01?thingy@@3Ufoo@@B" = global %struct.foo zeroinitializer, align 4
|
||||
; CHECK: .bss
|
Loading…
Reference in New Issue
Block a user