diff options
Diffstat (limited to 'lib/LTO/LTOModule.cpp')
| -rw-r--r-- | lib/LTO/LTOModule.cpp | 24 | 
1 files changed, 10 insertions, 14 deletions
| diff --git a/lib/LTO/LTOModule.cpp b/lib/LTO/LTOModule.cpp index 51b4f225939f..626d2f5dc813 100644 --- a/lib/LTO/LTOModule.cpp +++ b/lib/LTO/LTOModule.cpp @@ -388,24 +388,20 @@ void LTOModule::addDefinedDataSymbol(StringRef Name, const GlobalValue *v) {    // from the ObjC data structures generated by the front end.    // special case if this data blob is an ObjC class definition -  std::string Section = v->getSection(); -  if (Section.compare(0, 15, "__OBJC,__class,") == 0) { -    if (const GlobalVariable *gv = dyn_cast<GlobalVariable>(v)) { -      addObjCClass(gv); +  if (const GlobalVariable *GV = dyn_cast<GlobalVariable>(v)) { +    StringRef Section = GV->getSection(); +    if (Section.startswith("__OBJC,__class,")) { +      addObjCClass(GV);      } -  } -  // special case if this data blob is an ObjC category definition -  else if (Section.compare(0, 18, "__OBJC,__category,") == 0) { -    if (const GlobalVariable *gv = dyn_cast<GlobalVariable>(v)) { -      addObjCCategory(gv); +    // special case if this data blob is an ObjC category definition +    else if (Section.startswith("__OBJC,__category,")) { +      addObjCCategory(GV);      } -  } -  // special case if this data blob is the list of referenced classes -  else if (Section.compare(0, 18, "__OBJC,__cls_refs,") == 0) { -    if (const GlobalVariable *gv = dyn_cast<GlobalVariable>(v)) { -      addObjCClassRef(gv); +    // special case if this data blob is the list of referenced classes +    else if (Section.startswith("__OBJC,__cls_refs,")) { +      addObjCClassRef(GV);      }    }  } | 
