diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-09-20 07:31:46 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-09-20 07:31:46 +0000 |
commit | b8dbebb31c5d191e766e5e4bc6ea5b19b9bec0d5 (patch) | |
tree | b0b59674ea1929007933c791311164a6fba85b6f /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 8c4cccd4aae0d385ccc86b46f0810bb5fa4c1d6b (diff) | |
download | bcm5719-llvm-b8dbebb31c5d191e766e5e4bc6ea5b19b9bec0d5.tar.gz bcm5719-llvm-b8dbebb31c5d191e766e5e4bc6ea5b19b9bec0d5.zip |
MC: Treat ReadOnlyWithRel and ReadOnlyWithRelLocal as ReadOnly for COFF
A problem with our old behavior becomes observable under x86-64 COFF
when we need a read-only GV which has an initializer which is referenced
using a relocation: we would mark the section as writable. Marking the
section as writable interferes with section merging.
This fixes PR21009.
llvm-svn: 218179
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 7a14f2c6dcd..6d5e27c00e8 100644 --- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -761,7 +761,7 @@ getCOFFSectionFlags(SectionKind K) { COFF::IMAGE_SCN_MEM_EXECUTE | COFF::IMAGE_SCN_MEM_READ | COFF::IMAGE_SCN_CNT_CODE; - else if (K.isBSS ()) + else if (K.isBSS()) Flags |= COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA | COFF::IMAGE_SCN_MEM_READ | @@ -771,7 +771,7 @@ getCOFFSectionFlags(SectionKind K) { COFF::IMAGE_SCN_CNT_INITIALIZED_DATA | COFF::IMAGE_SCN_MEM_READ | COFF::IMAGE_SCN_MEM_WRITE; - else if (K.isReadOnly()) + else if (K.isReadOnly() || K.isReadOnlyWithRel()) Flags |= COFF::IMAGE_SCN_CNT_INITIALIZED_DATA | COFF::IMAGE_SCN_MEM_READ; |