}
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
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
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";