Author: David Spickett Date: 2026-05-14T14:38:43Z New Revision: 0ac83dccaf53f3a51714fd53b151314de1a13e48
URL: https://github.com/llvm/llvm-project/commit/0ac83dccaf53f3a51714fd53b151314de1a13e48 DIFF: https://github.com/llvm/llvm-project/commit/0ac83dccaf53f3a51714fd53b151314de1a13e48.diff LOG: [clang][AArch64] Use structured bindings in feature parsing code (#197689) Clearer than having to know that first is a CPU and second is the feature list. Added: Modified: clang/lib/Driver/ToolChains/Arch/AArch64.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp index 7ed4002e53420..12f7e382cc99a 100644 --- a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -180,8 +180,7 @@ static bool DecodeAArch64HostFeatures(llvm::AArch64::ExtensionSet &Extensions) { static bool DecodeAArch64Mcpu(const Driver &D, StringRef Mcpu, llvm::AArch64::ExtensionSet &Extensions, std::optional<std::string> &InvalidArg) { - std::pair<StringRef, StringRef> Split = Mcpu.split("+"); - StringRef CPU = Split.first; + auto [CPU, features] = Mcpu.split("+"); const bool IsNative = CPU == "native"; if (IsNative) @@ -190,7 +189,7 @@ static bool DecodeAArch64Mcpu(const Driver &D, StringRef Mcpu, const std::optional<llvm::AArch64::CpuInfo> CpuInfo = llvm::AArch64::parseCpu(CPU); if (!CpuInfo) { - InvalidArg.emplace(Split.first.str()); + InvalidArg.emplace(CPU.str()); return false; } @@ -199,8 +198,8 @@ static bool DecodeAArch64Mcpu(const Driver &D, StringRef Mcpu, if (IsNative && !DecodeAArch64HostFeatures(Extensions)) return false; - if (Split.second.size() && - !DecodeAArch64Features(D, Split.second, Extensions, InvalidArg)) + if (features.size() && + !DecodeAArch64Features(D, features, Extensions, InvalidArg)) return false; return true; @@ -212,22 +211,22 @@ getAArch64ArchFeaturesFromMarch(const Driver &D, StringRef March, llvm::AArch64::ExtensionSet &Extensions, std::optional<std::string> &InvalidArg) { std::string MarchLowerCase = March.lower(); - std::pair<StringRef, StringRef> Split = StringRef(MarchLowerCase).split("+"); + auto [CPU, features] = StringRef(MarchLowerCase).split("+"); - if (Split.first == "native") + if (CPU == "native") return DecodeAArch64Mcpu(D, MarchLowerCase, Extensions, InvalidArg); const llvm::AArch64::ArchInfo *ArchInfo = - llvm::AArch64::parseArch(Split.first); + llvm::AArch64::parseArch(CPU); if (!ArchInfo) { - InvalidArg.emplace(Split.first.str()); + InvalidArg.emplace(CPU.str()); return false; } Extensions.addArchDefaults(*ArchInfo); - if ((Split.second.size() && - !DecodeAArch64Features(D, Split.second, Extensions, InvalidArg))) + if ((features.size() && + !DecodeAArch64Features(D, features, Extensions, InvalidArg))) return false; return true; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
