add support for hidden visibility to darwin/x86
authorChris Lattner <sabre@nondot.org>
Sun, 14 Jan 2007 06:29:53 +0000 (06:29 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 14 Jan 2007 06:29:53 +0000 (06:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33198 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ATTAsmPrinter.cpp
lib/Target/X86/X86AsmPrinter.cpp
lib/Target/X86/X86TargetAsmInfo.cpp

index 1e60cd3f4d76c71574a201a858e709feba4f224c..096f712eba39d77a1aaede0817de998caadd765d 100755 (executable)
@@ -125,8 +125,9 @@ bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
     }
     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
index 396d90ca4d9203e9b60ba1e28cac095d6404e19b..78b1af22e5b5607622e3099bb4fcc1e5229f9a79 100644 (file)
@@ -246,8 +246,9 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
       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
index 7371161b96d450f4ef67bed34ed7291bf6cd9db6..5d52d932ef96b1edfb1a566a9f29bda81be45162 100644 (file)
@@ -64,6 +64,7 @@ X86TargetAsmInfo::X86TargetAsmInfo(const X86TargetMachine &TM) {
     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";