diff --git a/util/ffdc_file.hpp b/util/ffdc_file.hpp
index 64b5186..0e1e79e 100644
--- a/util/ffdc_file.hpp
+++ b/util/ffdc_file.hpp
@@ -37,12 +37,12 @@
 {
   public:
     // Specify which compiler-generated methods we want
-    FFDCFile()                           = delete;
-    FFDCFile(const FFDCFile&)            = delete;
-    FFDCFile(FFDCFile&&)                 = default;
+    FFDCFile() = delete;
+    FFDCFile(const FFDCFile&) = delete;
+    FFDCFile(FFDCFile&&) = default;
     FFDCFile& operator=(const FFDCFile&) = delete;
-    FFDCFile& operator=(FFDCFile&&)      = default;
-    ~FFDCFile()                          = default;
+    FFDCFile& operator=(FFDCFile&&) = default;
+    ~FFDCFile() = default;
 
     /**
      * Constructor.
@@ -164,10 +164,9 @@
 
     std::transform(i_files.begin(), i_files.end(), std::back_inserter(o_tuples),
                    [](const auto& e) {
-                       return FFDCTuple(
-                           e.getFormat(), e.getSubType(), e.getVersion(),
-                           sdbusplus::message::unix_fd(e.getFileDescriptor()));
-                   });
+        return FFDCTuple(e.getFormat(), e.getSubType(), e.getVersion(),
+                         sdbusplus::message::unix_fd(e.getFileDescriptor()));
+    });
 }
 
 } // namespace util
