aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-07-28 21:53:17 +0000
committerBill Wendling <isanbard@gmail.com>2009-07-28 21:53:17 +0000
commitac3126ebdd7fc8488a4a14aa72b2d95604f2fdf9 (patch)
treecf9462e7322c8ff7f307ea94a71edff88f075548 /lib/Target
parent1da5860b041a84744790878d1cd42e0d33afbd12 (diff)
downloadexternal_llvm-ac3126ebdd7fc8488a4a14aa72b2d95604f2fdf9.zip
external_llvm-ac3126ebdd7fc8488a4a14aa72b2d95604f2fdf9.tar.gz
external_llvm-ac3126ebdd7fc8488a4a14aa72b2d95604f2fdf9.tar.bz2
Darwin outputs (DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4) when we're
dealing with Data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77372 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/X86TargetAsmInfo.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp
index b4f503b..277c3cb 100644
--- a/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -94,10 +94,13 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
unsigned
X86DarwinTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
bool Global) const {
- if (Reason == DwarfEncoding::Functions && Global)
- return (DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4);
+ if ((Reason == DwarfEncoding::Data || Reason == DwarfEncoding::Functions)
+ && Global)
+ return DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4;
+
if (Reason == DwarfEncoding::CodeLabels || !Global)
return DW_EH_PE_pcrel;
+
return DW_EH_PE_absptr;
}