diff --git a/src/isolator/hei_isolation_node.cpp b/src/isolator/hei_isolation_node.cpp
index 099a955..9fe0ba5 100644
--- a/src/isolator/hei_isolation_node.cpp
+++ b/src/isolator/hei_isolation_node.cpp
@@ -51,8 +51,8 @@
             {
                 // This bit was driven from an attention from another register.
                 // Continue down the isolation tree to look for more attentions.
-                bool attnFound = child_itr->second->analyze(i_chip, i_attnType,
-                                                            io_isoData);
+                bool attnFound =
+                    child_itr->second->analyze(i_chip, i_attnType, io_isoData);
                 if (!attnFound)
                 {
                     // It is possible the child node is only intended for FFDC.
@@ -178,8 +178,8 @@
 void IsolationNode::pushIsolationStack() const
 {
     // Ensure this node does not already exist in cv_isolationStack.
-    auto itr = std::find(cv_isolationStack.begin(), cv_isolationStack.end(),
-                         this);
+    auto itr =
+        std::find(cv_isolationStack.begin(), cv_isolationStack.end(), this);
     HEI_ASSERT(cv_isolationStack.end() == itr);
 
     // Push to node to the stack.
@@ -188,9 +188,8 @@
 
 //------------------------------------------------------------------------------
 
-void IsolationNode::captureRegisters(const Chip& i_chip,
-                                     IsolationData& io_isoData,
-                                     BitPosition_t i_bit) const
+void IsolationNode::captureRegisters(
+    const Chip& i_chip, IsolationData& io_isoData, BitPosition_t i_bit) const
 {
     auto itr = iv_capRegs.find(i_bit);
     if (iv_capRegs.end() != itr)
diff --git a/src/isolator/hei_isolation_node.hpp b/src/isolator/hei_isolation_node.hpp
index 5c5f8ed..1462093 100644
--- a/src/isolator/hei_isolation_node.hpp
+++ b/src/isolator/hei_isolation_node.hpp
@@ -53,8 +53,7 @@
      */
     IsolationNode(NodeId_t i_id, Instance_t i_instance,
                   RegisterType_t i_regType) :
-        iv_id(i_id),
-        iv_instance(i_instance), iv_regType(i_regType)
+        iv_id(i_id), iv_instance(i_instance), iv_regType(i_regType)
     {}
 
     /** @brief Destructor. */
