diff --git a/llvm/lib/Target/TargetAsmInfo.cpp b/llvm/lib/Target/TargetAsmInfo.cpp
index 483af12..0c74d5a 100644
--- a/llvm/lib/Target/TargetAsmInfo.cpp
+++ b/llvm/lib/Target/TargetAsmInfo.cpp
@@ -228,9 +228,7 @@
       assert(0 && "Unexpected section kind!");
     }
 
-    if (GV->hasLinkOnceLinkage() ||
-        GV->hasWeakLinkage() ||
-        GV->hasCommonLinkage())
+    if (GV->isWeakForLinker())
       Flags |= SectionFlags::Linkonce;
   }
 
@@ -289,9 +287,7 @@
 TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
   SectionKind::Kind Kind = SectionKindForGlobal(GV);
 
-  if (GV->hasLinkOnceLinkage() ||
-      GV->hasWeakLinkage() ||
-      GV->hasCommonLinkage())
+  if (GV->isWeakForLinker())
     return UniqueSectionForGlobal(GV, Kind);
   else {
     if (Kind == SectionKind::Text)
diff --git a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
index 0394b6c..0236e49 100644
--- a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -399,10 +399,7 @@
     if (shouldPrintStub(TM, Subtarget)) {
       // Link-once, declaration, or Weakly-linked global variables need
       // non-lazily-resolved stubs
-      if (GV->isDeclaration() ||
-          GV->hasWeakLinkage() ||
-          GV->hasLinkOnceLinkage() ||
-          GV->hasCommonLinkage()) {
+      if (GV->isDeclaration() || GV->isWeakForLinker()) {
         // Dynamically-resolved functions need a stub for the function.
         if (isCallOp && isa<Function>(GV)) {
           FnStubs.insert(Name);
@@ -802,8 +799,7 @@
     }
 
     if (!GVar->isThreadLocal() &&
-        (GVar->hasInternalLinkage() || GVar->hasWeakLinkage() ||
-         GVar->hasLinkOnceLinkage() || GVar->hasCommonLinkage())) {
+        (GVar->hasInternalLinkage() || GVar->isWeakForLinker())) {
       if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
 
       if (TAI->getLCOMMDirective() != NULL) {
diff --git a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp
index 0fdc0ee..dd1bdb8 100644
--- a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -224,9 +224,7 @@
 std::string
 X86DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
   SectionKind::Kind Kind = SectionKindForGlobal(GV);
-  bool isWeak = GV->hasWeakLinkage() ||
-                GV->hasCommonLinkage() ||
-                GV->hasLinkOnceLinkage();
+  bool isWeak = GV->isWeakForLinker();
 
   switch (Kind) {
    case SectionKind::Text:
@@ -435,9 +433,7 @@
       return UniqueSectionForGlobal(F, kind);
     }
   } else if (const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV)) {
-    if (GVar->hasCommonLinkage() ||
-        GVar->hasLinkOnceLinkage() ||
-        GVar->hasWeakLinkage())
+    if (GVar->isWeakForLinker()
       return UniqueSectionForGlobal(GVar, kind);
     else {
       switch (kind) {
