Fix SBDebugger::CreateTargetWithFileAndArch to accept LLDB_ARCH_DEFAULT.

The API docs in SBDebugger.i claim this should work but it doesn't.  This
should fix it.

Differential Revision: https://reviews.llvm.org/D95164

GitOrigin-RevId: f05dc40c31d1883b46b8bb60547087db2f4c03e3
diff --git a/source/API/SBDebugger.cpp b/source/API/SBDebugger.cpp
index dc1cc91..65881dc 100644
--- a/source/API/SBDebugger.cpp
+++ b/source/API/SBDebugger.cpp
@@ -805,11 +805,13 @@
   if (m_opaque_sp) {
     Status error;
     const bool add_dependent_modules = true;
-
+    PlatformSP platform_sp = m_opaque_sp->GetPlatformList().GetSelectedPlatform();
+    ArchSpec arch = Platform::GetAugmentedArchSpec(
+        platform_sp.get(), arch_cstr);
     error = m_opaque_sp->GetTargetList().CreateTarget(
-        *m_opaque_sp, filename, arch_cstr,
-        add_dependent_modules ? eLoadDependentsYes : eLoadDependentsNo, nullptr,
-        target_sp);
+        *m_opaque_sp, filename, arch,
+        add_dependent_modules ? eLoadDependentsYes : eLoadDependentsNo, 
+        platform_sp, target_sp);
 
     if (error.Success())
       sb_target.SetSP(target_sp);
diff --git a/test/API/python_api/target/TestTargetAPI.py b/test/API/python_api/target/TestTargetAPI.py
index f058a0a..9501bdb 100644
--- a/test/API/python_api/target/TestTargetAPI.py
+++ b/test/API/python_api/target/TestTargetAPI.py
@@ -476,3 +476,15 @@
         desc2 = get_description(symbol2)
         self.assertTrue(desc1 and desc2 and desc1 == desc2,
                         "The two addresses should resolve to the same symbol")
+    def test_default_arch(self):
+        """ Test the other two target create methods using LLDB_ARCH_DEFAULT. """
+        self.build()
+        exe = self.getBuildArtifact("a.out")
+        target = self.dbg.CreateTargetWithFileAndArch(exe, lldb.LLDB_ARCH_DEFAULT)
+        self.assertTrue(target.IsValid(), "Default arch made a valid target.")
+        # This should also work with the target's triple:
+        target2 = self.dbg.CreateTargetWithFileAndArch(exe, target.GetTriple())
+        self.assertTrue(target2.IsValid(), "Round trip with triple works")
+        # And this triple should work for the FileAndTriple API:
+        target3 = self.dbg.CreateTargetWithFileAndTargetTriple(exe, target.GetTriple())
+        self.assertTrue(target3.IsValid())