Changes in 226712 needed some fixing as a platform is almost always selected and even if platform options are specified when doing a "target create" they would get ignored if a platform was already selected.

The change was made so we could re-use a platform if one was already created instead of creating a new one, but it would fail in the above case. To fix this, if we have a selected platform, we verify that the platform matches the current platform before we try to re-use it. We do this by asking the OptionGroupPlatform if the platform matches. If so, it returns true and we don't create a new platform, else we do.

llvm-svn: 227288
diff --git a/lldb/source/Interpreter/OptionGroupPlatform.cpp b/lldb/source/Interpreter/OptionGroupPlatform.cpp
index 7e5e124..6bb3655 100644
--- a/lldb/source/Interpreter/OptionGroupPlatform.cpp
+++ b/lldb/source/Interpreter/OptionGroupPlatform.cpp
@@ -147,3 +147,38 @@
     }
     return error;
 }
+
+bool
+OptionGroupPlatform::PlatformMatches(const lldb::PlatformSP &platform_sp) const
+{
+    if (platform_sp)
+    {
+        if (!m_platform_name.empty())
+        {
+            if (platform_sp->GetName() != ConstString(m_platform_name.c_str()))
+                return false;
+        }
+
+        if (m_sdk_build && m_sdk_build != platform_sp->GetSDKBuild())
+            return false;
+
+        if (m_sdk_sysroot && m_sdk_sysroot != platform_sp->GetSDKRootDirectory())
+            return false;
+
+        if (m_os_version_major != UINT32_MAX)
+        {
+            uint32_t major, minor, update;
+            if (platform_sp->GetOSVersion (major, minor, update))
+            {
+                if (m_os_version_major != major)
+                    return false;
+                if (m_os_version_minor != minor)
+                    return false;
+                if (m_os_version_update != update)
+                    return false;
+            }
+        }
+        return true;
+    }
+    return false;
+}