r281261 - CodeGen: use some range-based for loops

Justin Bogner via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 13 11:06:22 PDT 2016


Saleem Abdulrasool via cfe-commits <cfe-commits at lists.llvm.org> writes:
> Author: compnerd
> Date: Mon Sep 12 16:15:23 2016
> New Revision: 281261
>
> URL: http://llvm.org/viewvc/llvm-project?rev=281261&view=rev
> Log:
> CodeGen: use some range-based for loops
>
> Use range-based for loops to simplify the logic.  Add an explicit check for
> MachO as the inline asm uses MachO specific directives.
>
> Modified:
>     cfe/trunk/lib/CodeGen/CGObjCMac.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=281261&r1=281260&r2=281261&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Mon Sep 12 16:15:23 2016
> @@ -5178,27 +5178,23 @@ void CGObjCMac::FinishModule() {
>    // important for correct linker interaction.
>    //
>    // FIXME: It would be nice if we had an LLVM construct for this.
> -  if (!LazySymbols.empty() || !DefinedSymbols.empty()) {
> +  if ((!LazySymbols.empty() || !DefinedSymbols.empty()) &&
> +      CGM.getTriple().isOSBinFormatMachO()) {
>      SmallString<256> Asm;
>      Asm += CGM.getModule().getModuleInlineAsm();
>      if (!Asm.empty() && Asm.back() != '\n')
>        Asm += '\n';
>  
>      llvm::raw_svector_ostream OS(Asm);
> -    for (llvm::SetVector<IdentifierInfo*>::iterator I = DefinedSymbols.begin(),
> -           e = DefinedSymbols.end(); I != e; ++I)
> -      OS << "\t.objc_class_name_" << (*I)->getName() << "=0\n"
> -         << "\t.globl .objc_class_name_" << (*I)->getName() << "\n";
> -    for (llvm::SetVector<IdentifierInfo*>::iterator I = LazySymbols.begin(),
> -         e = LazySymbols.end(); I != e; ++I) {
> -      OS << "\t.lazy_reference .objc_class_name_" << (*I)->getName() << "\n";
> -    }
> +    for (const auto &Sym : DefinedSymbols)

Is this a reference to a pointer? Please write this as `const auto *`,
or even just write out the type `const IdentifierInfo *`.

> +      OS << "\t.objc_class_name_" << Sym->getName() << "=0\n"
> +         << "\t.globl .objc_class_name_" << Sym->getName() << "\n";
> +    for (const auto &Sym : LazySymbols)
> +      OS << "\t.lazy_reference .objc_class_name_" << Sym->getName() << "\n";
> +    for (const auto &Category : DefinedCategoryNames)
> +      OS << "\t.objc_category_name_" << Category << "=0\n"
> +         << "\t.globl .objc_category_name_" << Category << "\n";
>  
> -    for (size_t i = 0, e = DefinedCategoryNames.size(); i < e; ++i) {
> -      OS << "\t.objc_category_name_" << DefinedCategoryNames[i] << "=0\n"
> -         << "\t.globl .objc_category_name_" << DefinedCategoryNames[i] << "\n";
> -    }
> -    
>      CGM.getModule().setModuleInlineAsm(OS.str());
>    }
>  }
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list