[Lldb-commits] [lldb] r237053 - Fix selecting the Platform in TargetList::CreateTargetInternal()

Ted Woodward ted.woodward at codeaurora.org
Mon May 11 14:23:31 PDT 2015


Author: ted
Date: Mon May 11 16:23:31 2015
New Revision: 237053

URL: http://llvm.org/viewvc/llvm-project?rev=237053&view=rev
Log:
Fix selecting the Platform in TargetList::CreateTargetInternal()

Summary:
TargetList::CreateTargetInternal() will only select the current Platform. A previous patch always sets platform_sp to the current Platform, so a check later to see if platform_sp was not defined always failed, and the current Platform was used. This patch removes that check, so if the current Platform is not compatible with the target architecture, CreateTargetInternal() will call Platform::GetPlatformForArchitecture() to select a compatible Platform.

Vince, remote linux tests (Ubuntu -> remote Ubuntu) pass the same with and without this patch.

Reviewers: vharron, clayborg

Reviewed By: clayborg

Subscribers: jingham, lldb-commits

Differential Revision: http://reviews.llvm.org/D8749

Modified:
    lldb/trunk/source/Target/TargetList.cpp

Modified: lldb/trunk/source/Target/TargetList.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/TargetList.cpp?rev=237053&r1=237052&r2=237053&view=diff
==============================================================================
--- lldb/trunk/source/Target/TargetList.cpp (original)
+++ lldb/trunk/source/Target/TargetList.cpp Mon May 11 16:23:31 2015
@@ -293,32 +293,27 @@ TargetList::CreateTargetInternal (Debugg
         }
     }
 
-    if (!platform_sp)
+    // If we have a valid architecture, make sure the current platform is
+    // compatible with that architecture
+    if (!prefer_platform_arch && arch.IsValid())
     {
-        // Get the current platform and make sure it is compatible with the
-        // current architecture if we have a valid architecture.
-        platform_sp = debugger.GetPlatformList().GetSelectedPlatform ();
-        
-        if (!prefer_platform_arch && arch.IsValid())
+        if (!platform_sp->IsCompatibleArchitecture(arch, false, &platform_arch))
         {
-            if (!platform_sp->IsCompatibleArchitecture(arch, false, &platform_arch))
-            {
-                platform_sp = Platform::GetPlatformForArchitecture(arch, &platform_arch);
-                if (platform_sp)
-                    debugger.GetPlatformList().SetSelectedPlatform(platform_sp);
-            }
+            platform_sp = Platform::GetPlatformForArchitecture(arch, &platform_arch);
+            if (platform_sp)
+                debugger.GetPlatformList().SetSelectedPlatform(platform_sp);
         }
-        else if (platform_arch.IsValid())
+    }
+    else if (platform_arch.IsValid())
+    {
+        // if "arch" isn't valid, yet "platform_arch" is, it means we have an executable file with
+        // a single architecture which should be used
+        ArchSpec fixed_platform_arch;
+        if (!platform_sp->IsCompatibleArchitecture(platform_arch, false, &fixed_platform_arch))
         {
-            // if "arch" isn't valid, yet "platform_arch" is, it means we have an executable file with
-            // a single architecture which should be used
-            ArchSpec fixed_platform_arch;
-            if (!platform_sp->IsCompatibleArchitecture(platform_arch, false, &fixed_platform_arch))
-            {
-                platform_sp = Platform::GetPlatformForArchitecture(platform_arch, &fixed_platform_arch);
-                if (platform_sp)
-                    debugger.GetPlatformList().SetSelectedPlatform(platform_sp);
-            }
+            platform_sp = Platform::GetPlatformForArchitecture(platform_arch, &fixed_platform_arch);
+            if (platform_sp)
+                debugger.GetPlatformList().SetSelectedPlatform(platform_sp);
         }
     }
     





More information about the lldb-commits mailing list