add support for hidden visibility to darwin/x86
llvm-svn: 33198
diff --git a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
index 1e60cd3..096f712 100755
--- a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -125,8 +125,9 @@
}
break;
}
- if (F->hasHiddenVisibility() && !Subtarget->isTargetDarwin())
- O << "\t.hidden " << CurrentFnName << "\n";
+ if (F->hasHiddenVisibility())
+ if (const char *Directive = TAI->getHiddenDirective())
+ O << Directive << CurrentFnName << "\n";
O << CurrentFnName << ":\n";
// Add some workaround for linkonce linkage on Cygwin\MinGW
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.cpp b/llvm/lib/Target/X86/X86AsmPrinter.cpp
index 396d90c..78b1af2 100644
--- a/llvm/lib/Target/X86/X86AsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86AsmPrinter.cpp
@@ -246,8 +246,9 @@
EmitGlobalConstant(C);
O << '\n';
}
- if (I->hasHiddenVisibility() && !Subtarget->isTargetDarwin())
- O << "\t.hidden " << name << "\n";
+ if (I->hasHiddenVisibility())
+ if (const char *Directive = TAI->getHiddenDirective())
+ O << Directive << name << "\n";
}
// Output linker support code for dllexported globals
diff --git a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp
index 7371161..5d52d93 100644
--- a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -64,6 +64,7 @@
SetDirective = "\t.set";
UsedDirective = "\t.no_dead_strip\t";
WeakRefDirective = "\t.weak_reference\t";
+ HiddenDirective = "\t.private_extern\t";
NeedsSet = true;
DwarfAbbrevSection = ".section __DWARF,__debug_abbrev,regular,debug";