Recommit "Return an ArrayRef instead of having two out parameters of a pointer and length. NFC". Hopefully this time the bots will be happy.

llvm-svn: 250678
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index 5e2d7fb..21368f8 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -349,49 +349,41 @@
   if (Name.empty())
     return false;
 
-  const char * const *Names;
-  unsigned NumNames;
-
   // Get rid of any register prefix.
   Name = removeGCCRegisterPrefix(Name);
   if (Name.empty())
       return false;
 
-  getGCCRegNames(Names, NumNames);
+  ArrayRef<const char *> Names = getGCCRegNames();
 
   // If we have a number it maps to an entry in the register name array.
   if (isDigit(Name[0])) {
     int n;
     if (!Name.getAsInteger(0, n))
-      return n >= 0 && (unsigned)n < NumNames;
+      return n >= 0 && (unsigned)n < Names.size();
   }
 
   // Check register names.
-  for (unsigned i = 0; i < NumNames; i++) {
+  for (unsigned i = 0; i < Names.size(); i++) {
     if (Name == Names[i])
       return true;
   }
 
   // Check any additional names that we have.
-  const AddlRegName *AddlNames;
-  unsigned NumAddlNames;
-  getGCCAddlRegNames(AddlNames, NumAddlNames);
-  for (unsigned i = 0; i < NumAddlNames; i++)
+  ArrayRef<AddlRegName> AddlNames = getGCCAddlRegNames();
+  for (unsigned i = 0; i < AddlNames.size(); i++)
     for (unsigned j = 0; j < llvm::array_lengthof(AddlNames[i].Names); j++) {
       if (!AddlNames[i].Names[j])
         break;
       // Make sure the register that the additional name is for is within
       // the bounds of the register names from above.
-      if (AddlNames[i].Names[j] == Name && AddlNames[i].RegNum < NumNames)
+      if (AddlNames[i].Names[j] == Name && AddlNames[i].RegNum < Names.size())
         return true;
   }
 
   // Now check aliases.
-  const GCCRegAlias *Aliases;
-  unsigned NumAliases;
-
-  getGCCRegAliases(Aliases, NumAliases);
-  for (unsigned i = 0; i < NumAliases; i++) {
+  ArrayRef<GCCRegAlias> Aliases = getGCCRegAliases();
+  for (unsigned i = 0; i < Aliases.size(); i++) {
     for (unsigned j = 0 ; j < llvm::array_lengthof(Aliases[i].Aliases); j++) {
       if (!Aliases[i].Aliases[j])
         break;
@@ -410,41 +402,33 @@
   // Get rid of any register prefix.
   Name = removeGCCRegisterPrefix(Name);
 
-  const char * const *Names;
-  unsigned NumNames;
-
-  getGCCRegNames(Names, NumNames);
+  ArrayRef<const char *> Names = getGCCRegNames();
 
   // First, check if we have a number.
   if (isDigit(Name[0])) {
     int n;
     if (!Name.getAsInteger(0, n)) {
-      assert(n >= 0 && (unsigned)n < NumNames &&
+      assert(n >= 0 && (unsigned)n < Names.size() &&
              "Out of bounds register number!");
       return Names[n];
     }
   }
 
   // Check any additional names that we have.
-  const AddlRegName *AddlNames;
-  unsigned NumAddlNames;
-  getGCCAddlRegNames(AddlNames, NumAddlNames);
-  for (unsigned i = 0; i < NumAddlNames; i++)
+  ArrayRef<AddlRegName> AddlNames = getGCCAddlRegNames();
+  for (unsigned i = 0; i < AddlNames.size(); i++)
     for (unsigned j = 0; j < llvm::array_lengthof(AddlNames[i].Names); j++) {
       if (!AddlNames[i].Names[j])
         break;
       // Make sure the register that the additional name is for is within
       // the bounds of the register names from above.
-      if (AddlNames[i].Names[j] == Name && AddlNames[i].RegNum < NumNames)
+      if (AddlNames[i].Names[j] == Name && AddlNames[i].RegNum < Names.size())
         return Name;
     }
 
   // Now check aliases.
-  const GCCRegAlias *Aliases;
-  unsigned NumAliases;
-
-  getGCCRegAliases(Aliases, NumAliases);
-  for (unsigned i = 0; i < NumAliases; i++) {
+  ArrayRef<GCCRegAlias> Aliases = getGCCRegAliases();
+  for (unsigned i = 0; i < Aliases.size(); i++) {
     for (unsigned j = 0 ; j < llvm::array_lengthof(Aliases[i].Aliases); j++) {
       if (!Aliases[i].Aliases[j])
         break;