ProcessGDBRemote::BuildDynamicRegisterInfo() - even if we don't have a Target architecture
set up yet, if we're talking to an Apple arm device set the register set based on the
arm device's attributes; this is a safe assumption to make in this particular environment.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141265 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index d39fbe4..beed1f2 100644
--- a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -345,8 +345,18 @@
         // We didn't get anything. See if we are debugging ARM and fill with
         // a hard coded register set until we can get an updated debugserver
         // down on the devices.
-        if (GetTarget().GetArchitecture().GetMachine() == llvm::Triple::arm)
+
+        if (!GetTarget().GetArchitecture().IsValid()
+            && m_gdb_comm.GetHostArchitecture().IsValid()
+            && m_gdb_comm.GetHostArchitecture().GetMachine() == llvm::Triple::arm
+            && m_gdb_comm.GetHostArchitecture().GetTriple().getVendor() == llvm::Triple::Apple)
+        {
             m_register_info.HardcodeARMRegisters();
+        }
+        else if (GetTarget().GetArchitecture().GetMachine() == llvm::Triple::arm)
+        {
+            m_register_info.HardcodeARMRegisters();
+        }
     }
     m_register_info.Finalize ();
 }