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

Reply via email to