Index: clang/lib/CodeGen/CodeGenModule.cpp =================================================================== --- clang/lib/CodeGen/CodeGenModule.cpp +++ clang/lib/CodeGen/CodeGenModule.cpp @@ -2001,6 +2001,12 @@ return AddedAttr; } +static llvm::AttrBuilder setNonAliasAttributesRemoveAttrs = + llvm::AttrBuilder() + .addAttribute("target-cpu") + .addAttribute("target-features") + .addAttribute("tune-cpu"); + void CodeGenModule::setNonAliasAttributes(GlobalDecl GD, llvm::GlobalObject *GO) { const Decl *D = GD.getDecl(); @@ -2032,11 +2038,7 @@ // We know that GetCPUAndFeaturesAttributes will always have the // newest set, since it has the newest possible FunctionDecl, so the // new ones should replace the old. - llvm::AttrBuilder RemoveAttrs; - RemoveAttrs.addAttribute("target-cpu"); - RemoveAttrs.addAttribute("target-features"); - RemoveAttrs.addAttribute("tune-cpu"); - F->removeFnAttrs(RemoveAttrs); + F->removeFnAttrs(setNonAliasAttributesRemoveAttrs); F->addFnAttrs(Attrs); } }