diff --git a/lldb/source/Interpreter/CommandOptionValidators.cpp b/lldb/source/Interpreter/CommandOptionValidators.cpp
index 7d66de5..1e614a9 100644
--- a/lldb/source/Interpreter/CommandOptionValidators.cpp
+++ b/lldb/source/Interpreter/CommandOptionValidators.cpp
@@ -15,25 +15,23 @@
 using namespace lldb;
 using namespace lldb_private;
 
-bool PosixPlatformCommandOptionValidator::IsValid(Platform &platform, const ExecutionContext &target) const
-{
-    llvm::Triple::OSType os = platform.GetSystemArchitecture().GetTriple().getOS();
-    switch (os)
-    {
-    // Are there any other platforms that are not POSIX-compatible?
-    case llvm::Triple::Win32:
-        return false;
-    default:
-        return true;
-    }
+bool PosixPlatformCommandOptionValidator::IsValid(
+    Platform &platform, const ExecutionContext &target) const {
+  llvm::Triple::OSType os =
+      platform.GetSystemArchitecture().GetTriple().getOS();
+  switch (os) {
+  // Are there any other platforms that are not POSIX-compatible?
+  case llvm::Triple::Win32:
+    return false;
+  default:
+    return true;
+  }
 }
 
-const char* PosixPlatformCommandOptionValidator::ShortConditionString() const 
-{ 
-    return "POSIX"; 
+const char *PosixPlatformCommandOptionValidator::ShortConditionString() const {
+  return "POSIX";
 }
 
-const char* PosixPlatformCommandOptionValidator::LongConditionString() const 
-{ 
-    return "Option only valid for POSIX-compliant hosts."; 
+const char *PosixPlatformCommandOptionValidator::LongConditionString() const {
+  return "Option only valid for POSIX-compliant hosts.";
 }
