[Driver] Alias -fvisibility=internal to -fvisibility=hidden
The ELF symbol visibilities are: - internal: Not visibile across DSOs, cannot pass address across DSOs - hidden: Not visibile across DSOs, can be called indirectly - default: Usually visible across DSOs, possibly interposable - protected: Visible across DSOs, not interposable LLVM only supports the latter 3 visibilities. Internal visibility is in theory useful, as it allows you to assume that the caller is maintaining a PIC register for you in %ebx, or in some other pre-arranged location. As far as LLVM is concerned, this isn't worth the trouble. Using hidden visibility is always correct, so we can just do that. Resolves PR9183. llvm-svn: 250954
This commit is contained in:
@@ -1296,7 +1296,7 @@ static Visibility parseVisibility(Arg *arg, ArgList &args,
|
||||
StringRef value = arg->getValue();
|
||||
if (value == "default") {
|
||||
return DefaultVisibility;
|
||||
} else if (value == "hidden") {
|
||||
} else if (value == "hidden" || value == "internal") {
|
||||
return HiddenVisibility;
|
||||
} else if (value == "protected") {
|
||||
// FIXME: diagnose if target does not support protected visibility
|
||||
|
||||
Reference in New Issue
Block a user