From 91f2c7bc439e121a766237dde70cbd98c9d023ba Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sun, 29 Nov 2015 14:33:06 +0000 Subject: [PATCH] Simplify. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254254 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Linker/LinkModules.cpp | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp index 58d2b84bd73..6b60379803e 100644 --- a/lib/Linker/LinkModules.cpp +++ b/lib/Linker/LinkModules.cpp @@ -627,19 +627,6 @@ void ModuleLinker::copyGVAttributes(GlobalValue *NewGV, forceRenaming(NewGV, getName(SrcGV)); } -static bool isLessConstraining(GlobalValue::VisibilityTypes a, - GlobalValue::VisibilityTypes b) { - if (a == GlobalValue::HiddenVisibility) - return false; - if (b == GlobalValue::HiddenVisibility) - return true; - if (a == GlobalValue::ProtectedVisibility) - return false; - if (b == GlobalValue::ProtectedVisibility) - return true; - return false; -} - bool ModuleLinker::doImportAsDefinition(const GlobalValue *SGV) { if (!isPerformingImport()) return false; @@ -864,13 +851,22 @@ GlobalValue *ModuleLinker::copyGlobalAliasProto(TypeMapTy &TypeMap, getLinkage(SGA), getName(SGA), DstM); } +static GlobalValue::VisibilityTypes +getMinVisibility(GlobalValue::VisibilityTypes A, + GlobalValue::VisibilityTypes B) { + if (A == GlobalValue::HiddenVisibility || B == GlobalValue::HiddenVisibility) + return GlobalValue::HiddenVisibility; + if (A == GlobalValue::ProtectedVisibility || + B == GlobalValue::ProtectedVisibility) + return GlobalValue::ProtectedVisibility; + return GlobalValue::DefaultVisibility; +} + void ModuleLinker::setVisibility(GlobalValue *NewGV, const GlobalValue *SGV, const GlobalValue *DGV) { GlobalValue::VisibilityTypes Visibility = SGV->getVisibility(); if (DGV) - Visibility = isLessConstraining(Visibility, DGV->getVisibility()) - ? DGV->getVisibility() - : Visibility; + Visibility = getMinVisibility(DGV->getVisibility(), Visibility); // For promoted locals, mark them hidden so that they can later be // stripped from the symbol table to reduce bloat. if (SGV->hasLocalLinkage() && doPromoteLocalToGlobal(SGV)) -- 2.34.1