diff --git a/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp b/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp
index cdbf93b..dbbd4f4 100644
--- a/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp
+++ b/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp
@@ -9,28 +9,29 @@
 
 #include "lldb/Target/InstrumentationRuntimeStopInfo.h"
 
-#include "lldb/lldb-private.h"
-#include "lldb/Target/Process.h"
 #include "lldb/Target/InstrumentationRuntime.h"
+#include "lldb/Target/Process.h"
+#include "lldb/lldb-private.h"
 
 using namespace lldb;
 using namespace lldb_private;
 
-InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(Thread &thread, std::string description, StructuredData::ObjectSP additional_data) :
-    StopInfo(thread, 0)
-{
-    m_extended_info = additional_data;
-    m_description = description;
+InstrumentationRuntimeStopInfo::InstrumentationRuntimeStopInfo(
+    Thread &thread, std::string description,
+    StructuredData::ObjectSP additional_data)
+    : StopInfo(thread, 0) {
+  m_extended_info = additional_data;
+  m_description = description;
 }
 
-const char *
-InstrumentationRuntimeStopInfo::GetDescription ()
-{
-    return m_description.c_str();
+const char *InstrumentationRuntimeStopInfo::GetDescription() {
+  return m_description.c_str();
 }
 
 StopInfoSP
-InstrumentationRuntimeStopInfo::CreateStopReasonWithInstrumentationData (Thread &thread, std::string description, StructuredData::ObjectSP additionalData)
-{
-    return StopInfoSP(new InstrumentationRuntimeStopInfo(thread, description, additionalData));
+InstrumentationRuntimeStopInfo::CreateStopReasonWithInstrumentationData(
+    Thread &thread, std::string description,
+    StructuredData::ObjectSP additionalData) {
+  return StopInfoSP(
+      new InstrumentationRuntimeStopInfo(thread, description, additionalData));
 }
