aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/TargetLoweringObjectFileImpl.cpp5
-rw-r--r--test/CodeGen/X86/eh_frame.ll13
2 files changed, 12 insertions, 6 deletions
diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
index 4e2888ddfc..cdac42d1bf 100644
--- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -255,9 +255,6 @@ getELFKindForNamedSection(StringRef Name, SectionKind K) {
Name.startswith(".llvm.linkonce.tb."))
return SectionKind::getThreadBSS();
- if (Name == ".eh_frame")
- return SectionKind::getReadOnlyWithRel();
-
return K;
}
@@ -290,7 +287,7 @@ getELFSectionFlags(SectionKind K) {
if (K.isText())
Flags |= ELF::SHF_EXECINSTR;
- if (K.isWriteable() && !K.isReadOnlyWithRel())
+ if (K.isWriteable())
Flags |= ELF::SHF_WRITE;
if (K.isThreadLocal())
diff --git a/test/CodeGen/X86/eh_frame.ll b/test/CodeGen/X86/eh_frame.ll
index e8d3c87d41..3b792b235c 100644
--- a/test/CodeGen/X86/eh_frame.ll
+++ b/test/CodeGen/X86/eh_frame.ll
@@ -1,5 +1,14 @@
-; RUN: llc < %s -mtriple x86_64-unknown-linux-gnu | FileCheck %s
+; RUN: llc < %s -mtriple x86_64-unknown-linux-gnu | FileCheck -check-prefix=STATIC %s
+; RUN: llc < %s -mtriple x86_64-unknown-linux-gnu -relocation-model=pic | FileCheck -check-prefix=PIC %s
@__FRAME_END__ = constant [1 x i32] zeroinitializer, section ".eh_frame"
-; CHECK: .section .eh_frame,"a",@progbits
+@foo = external global i32
+@bar1 = constant i8* bitcast (i32* @foo to i8*), section "my_bar1", align 8
+
+
+; STATIC: .section .eh_frame,"a",@progbits
+; STATIC: .section my_bar1,"a",@progbits
+
+; PIC: .section .eh_frame,"a",@progbits
+; PIC: .section my_bar1,"aw",@progbits