Add a GlobalAlias::isValidLinkage to reduce code duplication.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 9 Oct 2013 16:07:32 +0000 (16:07 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 9 Oct 2013 16:07:32 +0000 (16:07 +0000)
Thanks to Reid Kleckner for the suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192298 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/GlobalAlias.h
lib/AsmParser/LLParser.cpp
lib/IR/Verifier.cpp

index e09fb6a4f184c43a03e52a1c78ec19b45b05e78f..fec61a7ceaf1aa9b008504e64d9455ecce70f1da 100644 (file)
@@ -81,6 +81,11 @@ public:
     return const_cast<GlobalAlias *>(this)->resolveAliasedGlobal(stopOnWeak);
   }
 
+  static bool isValidLinkage(LinkageTypes L) {
+    return isExternalLinkage(L) || isLocalLinkage(L) ||
+      isWeakLinkage(L) || isLinkOnceLinkage(L);
+  }
+
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const Value *V) {
     return V->getValueID() == Value::GlobalAliasVal;
index d5c5db11de8cae009ac2ad9f59ccc198b318aa69..74c0ea4af529be744fbfc1c106495591e8821200 100644 (file)
@@ -634,10 +634,7 @@ bool LLParser::ParseAlias(const std::string &Name, LocTy NameLoc,
 
   GlobalValue::LinkageTypes Linkage = (GlobalValue::LinkageTypes) L;
 
-  if(!GlobalValue::isExternalLinkage(Linkage) &&
-     !GlobalValue::isLocalLinkage(Linkage) &&
-     !GlobalValue::isWeakLinkage(Linkage) &&
-     !GlobalValue::isLinkOnceLinkage(Linkage))
+  if(!GlobalAlias::isValidLinkage(Linkage))
     return Error(LinkageLoc, "invalid linkage type for alias");
 
   Constant *Aliasee;
index c01083923542126690c4bf92ea87d8862cfbce0f..c7559c1bf9da5cec045761e9848d34fe4f6d0efe 100644 (file)
@@ -529,8 +529,7 @@ void Verifier::visitGlobalVariable(GlobalVariable &GV) {
 void Verifier::visitGlobalAlias(GlobalAlias &GA) {
   Assert1(!GA.getName().empty(),
           "Alias name cannot be empty!", &GA);
-  Assert1(GA.hasExternalLinkage() || GA.hasLocalLinkage() ||
-          GA.hasWeakLinkage() || GA.hasLinkOnceLinkage(),
+  Assert1(GlobalAlias::isValidLinkage(GA.getLinkage()),
           "Alias should have external or external weak linkage!", &GA);
   Assert1(GA.getAliasee(),
           "Aliasee cannot be NULL!", &GA);