diff --git a/bmc/buildjson.cpp b/bmc/buildjson.cpp
index 3fdda31..822e640 100644
--- a/bmc/buildjson.cpp
+++ b/bmc/buildjson.cpp
@@ -20,14 +20,15 @@
 #include "general_systemd.hpp"
 #include "skip_action.hpp"
 
+#include <nlohmann/json.hpp>
+#include <phosphor-logging/log.hpp>
+#include <sdbusplus/bus.hpp>
+
 #include <algorithm>
 #include <cstdio>
 #include <exception>
 #include <fstream>
-#include <nlohmann/json.hpp>
-#include <phosphor-logging/log.hpp>
 #include <regex>
-#include <sdbusplus/bus.hpp>
 #include <string>
 #include <vector>
 
diff --git a/bmc/buildjson.hpp b/bmc/buildjson.hpp
index 8e333f6..0af4241 100644
--- a/bmc/buildjson.hpp
+++ b/bmc/buildjson.hpp
@@ -3,8 +3,9 @@
 #include "firmware_handler.hpp"
 #include "image_handler.hpp"
 
-#include <memory>
 #include <nlohmann/json.hpp>
+
+#include <memory>
 #include <string>
 #include <vector>
 
diff --git a/bmc/file_handler.cpp b/bmc/file_handler.cpp
index e81730d..f7878ea 100644
--- a/bmc/file_handler.cpp
+++ b/bmc/file_handler.cpp
@@ -97,8 +97,7 @@
         return static_cast<int>(fs::file_size(filename));
     }
     catch (const fs::filesystem_error& e)
-    {
-    }
+    {}
 
     return 0;
 }
diff --git a/bmc/file_handler.hpp b/bmc/file_handler.hpp
index 9cb2819..0c00d2d 100644
--- a/bmc/file_handler.hpp
+++ b/bmc/file_handler.hpp
@@ -21,8 +21,7 @@
      * qualified file system path.
      */
     explicit FileHandler(const std::string& filename) : filename(filename)
-    {
-    }
+    {}
 
     bool open(const std::string& path) override;
     void close() override;
diff --git a/bmc/firmware_handler.cpp b/bmc/firmware_handler.cpp
index 9b35e5f..9923d5b 100644
--- a/bmc/firmware_handler.cpp
+++ b/bmc/firmware_handler.cpp
@@ -22,13 +22,14 @@
 #include "status.hpp"
 #include "util.hpp"
 
-#include <algorithm>
 #include <blobs-ipmid/blobs.hpp>
+#include <phosphor-logging/log.hpp>
+
+#include <algorithm>
 #include <cstdint>
 #include <cstring>
 #include <fstream>
 #include <memory>
-#include <phosphor-logging/log.hpp>
 #include <string>
 #include <vector>
 
diff --git a/bmc/firmware_handler.hpp b/bmc/firmware_handler.hpp
index 6275843..5cef9e9 100644
--- a/bmc/firmware_handler.hpp
+++ b/bmc/firmware_handler.hpp
@@ -7,8 +7,9 @@
 #include "status.hpp"
 #include "util.hpp"
 
-#include <algorithm>
 #include <blobs-ipmid/blobs.hpp>
+
+#include <algorithm>
 #include <cstdint>
 #include <map>
 #include <memory>
@@ -49,8 +50,7 @@
      */
     explicit Session(const std::string& path) :
         dataHandler(nullptr), imageHandler(nullptr), flags(0), activePath(path)
-    {
-    }
+    {}
 
     /**
      * Pointer to the correct Data handler interface. (nullptr on BT (or KCS))
@@ -129,8 +129,7 @@
         activeHash(activeHashBlobId), verifyImage(verifyBlobId),
         updateImage(updateBlobId), lookup(), state(UpdateState::notYetStarted),
         actionPacks(std::move(actionPacks))
-    {
-    }
+    {}
     ~FirmwareBlobHandler() = default;
     FirmwareBlobHandler(const FirmwareBlobHandler&) = delete;
     FirmwareBlobHandler& operator=(const FirmwareBlobHandler&) = delete;
diff --git a/bmc/general_systemd.cpp b/bmc/general_systemd.cpp
index b036bbf..8f2c735 100644
--- a/bmc/general_systemd.cpp
+++ b/bmc/general_systemd.cpp
@@ -18,9 +18,10 @@
 
 #include "status.hpp"
 
+#include <sdbusplus/bus.hpp>
+
 #include <fstream>
 #include <memory>
-#include <sdbusplus/bus.hpp>
 #include <string>
 #include <vector>
 
diff --git a/bmc/general_systemd.hpp b/bmc/general_systemd.hpp
index 590b339..9b33460 100644
--- a/bmc/general_systemd.hpp
+++ b/bmc/general_systemd.hpp
@@ -2,9 +2,10 @@
 
 #include "status.hpp"
 
-#include <memory>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/bus/match.hpp>
+
+#include <memory>
 #include <string>
 
 namespace ipmi_flash
@@ -22,8 +23,7 @@
                   const std::string& mode) :
         bus(std::move(bus)),
         triggerService(service), mode(mode)
-    {
-    }
+    {}
 
     SystemdNoFile(const SystemdNoFile&) = delete;
     SystemdNoFile& operator=(const SystemdNoFile&) = delete;
@@ -76,8 +76,7 @@
                           const std::string& service, const std::string& mode) :
         SystemdNoFile(std::move(bus), service, mode),
         checkPath(path)
-    {
-    }
+    {}
 
     bool trigger() override;
     ActionStatus status() override;
diff --git a/bmc/image_handler.hpp b/bmc/image_handler.hpp
index 52d682f..a25a74a 100644
--- a/bmc/image_handler.hpp
+++ b/bmc/image_handler.hpp
@@ -55,8 +55,7 @@
                 std::unique_ptr<ImageHandlerInterface> handler) :
         blobName(name),
         handler(std::move(handler))
-    {
-    }
+    {}
 
     HandlerPack() = default;
     ~HandlerPack() = default;
diff --git a/bmc/lpc_handler.hpp b/bmc/lpc_handler.hpp
index 4158b9b..cc04433 100644
--- a/bmc/lpc_handler.hpp
+++ b/bmc/lpc_handler.hpp
@@ -34,8 +34,7 @@
      */
     explicit LpcDataHandler(std::unique_ptr<HardwareMapperInterface> mapper) :
         mapper(std::move(mapper)), initialized(false)
-    {
-    }
+    {}
 
     bool open() override;
     bool close() override;
diff --git a/bmc/main.cpp b/bmc/main.cpp
index 0e779b4..48af9d0 100644
--- a/bmc/main.cpp
+++ b/bmc/main.cpp
@@ -30,10 +30,11 @@
 #include "status.hpp"
 #include "util.hpp"
 
-#include <cstdint>
-#include <memory>
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
+
+#include <cstdint>
+#include <memory>
 #include <string>
 #include <unordered_map>
 #include <vector>
@@ -105,8 +106,9 @@
 } // namespace
 } // namespace ipmi_flash
 
-extern "C" {
-std::unique_ptr<blobs::GenericBlobInterface> createHandler();
+extern "C"
+{
+    std::unique_ptr<blobs::GenericBlobInterface> createHandler();
 }
 
 std::unique_ptr<blobs::GenericBlobInterface> createHandler()
diff --git a/bmc/mapper_errors.hpp b/bmc/mapper_errors.hpp
index 8f30f30..7717f4b 100644
--- a/bmc/mapper_errors.hpp
+++ b/bmc/mapper_errors.hpp
@@ -10,8 +10,7 @@
 {
   public:
     explicit MapperException(const std::string& message) : message(message)
-    {
-    }
+    {}
 
     virtual const char* what() const noexcept override
     {
diff --git a/bmc/net_handler.hpp b/bmc/net_handler.hpp
index 0a0943f..b107e72 100644
--- a/bmc/net_handler.hpp
+++ b/bmc/net_handler.hpp
@@ -4,9 +4,10 @@
 
 #include <unistd.h>
 
+#include <stdplus/handle/managed.hpp>
+
 #include <cstdint>
 #include <optional>
-#include <stdplus/handle/managed.hpp>
 #include <vector>
 
 namespace ipmi_flash
@@ -19,8 +20,7 @@
 {
   public:
     NetDataHandler() : listenFd(std::nullopt), connFd(std::nullopt)
-    {
-    }
+    {}
 
     bool open() override;
     bool close() override;
diff --git a/bmc/skip_action.hpp b/bmc/skip_action.hpp
index 2ae9377..65fcfc8 100644
--- a/bmc/skip_action.hpp
+++ b/bmc/skip_action.hpp
@@ -28,8 +28,7 @@
         return true;
     }
     void abort() override
-    {
-    }
+    {}
     ActionStatus status() override
     {
         return ActionStatus::success;
diff --git a/bmc/test/firmware_close_unittest.cpp b/bmc/test/firmware_close_unittest.cpp
index 87de86e..580fcf4 100644
--- a/bmc/test/firmware_close_unittest.cpp
+++ b/bmc/test/firmware_close_unittest.cpp
@@ -21,8 +21,7 @@
 using ::testing::StrEq;
 
 class FirmwareHandlerCloseTest : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerCloseTest, CloseSucceedsWithDataHandler)
 {
diff --git a/bmc/test/firmware_open_unittest.cpp b/bmc/test/firmware_open_unittest.cpp
index 21ab97b..77e5ff3 100644
--- a/bmc/test/firmware_open_unittest.cpp
+++ b/bmc/test/firmware_open_unittest.cpp
@@ -16,8 +16,7 @@
 {
 
 class FirmwareOpenFailTest : public ::testing::TestWithParam<std::uint16_t>
-{
-};
+{};
 
 TEST_P(FirmwareOpenFailTest, WithFlags)
 {
diff --git a/bmc/test/firmware_sessionstat_unittest.cpp b/bmc/test/firmware_sessionstat_unittest.cpp
index 9623246..0e2796c 100644
--- a/bmc/test/firmware_sessionstat_unittest.cpp
+++ b/bmc/test/firmware_sessionstat_unittest.cpp
@@ -15,12 +15,10 @@
 using ::testing::Return;
 
 class FirmwareSessionStateTestIpmiOnly : public IpmiOnlyFirmwareTest
-{
-};
+{};
 
 class FirmwareSessionStateTestLpc : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareSessionStateTestIpmiOnly, DataTypeIpmiNoMetadata)
 {
diff --git a/bmc/test/firmware_state_notyetstarted_unittest.cpp b/bmc/test/firmware_state_notyetstarted_unittest.cpp
index 2a100bd..b3cfc49 100644
--- a/bmc/test/firmware_state_notyetstarted_unittest.cpp
+++ b/bmc/test/firmware_state_notyetstarted_unittest.cpp
@@ -20,8 +20,7 @@
 using ::testing::UnorderedElementsAreArray;
 
 class FirmwareHandlerNotYetStartedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * There are the following calls (parameters may vary):
diff --git a/bmc/test/firmware_state_updatecompleted_unittest.cpp b/bmc/test/firmware_state_updatecompleted_unittest.cpp
index 320d09e..7136223 100644
--- a/bmc/test/firmware_state_updatecompleted_unittest.cpp
+++ b/bmc/test/firmware_state_updatecompleted_unittest.cpp
@@ -39,8 +39,7 @@
  */
 
 class FirmwareHandlerUpdateCompletedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * open(blob)
diff --git a/bmc/test/firmware_state_updatepending_unittest.cpp b/bmc/test/firmware_state_updatepending_unittest.cpp
index d757b3c..16a6498 100644
--- a/bmc/test/firmware_state_updatepending_unittest.cpp
+++ b/bmc/test/firmware_state_updatepending_unittest.cpp
@@ -41,8 +41,7 @@
  */
 
 class FirmwareHandlerUpdatePendingTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * There are the following calls (parameters may vary):
diff --git a/bmc/test/firmware_state_updatestarted_unittest.cpp b/bmc/test/firmware_state_updatestarted_unittest.cpp
index 086dcfa..3aa97ed 100644
--- a/bmc/test/firmware_state_updatestarted_unittest.cpp
+++ b/bmc/test/firmware_state_updatestarted_unittest.cpp
@@ -38,8 +38,7 @@
  */
 
 class FirmwareHandlerUpdateStartedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * open(blob)
diff --git a/bmc/test/firmware_state_uploadinprogress_unittest.cpp b/bmc/test/firmware_state_uploadinprogress_unittest.cpp
index 366435b..994ddb1 100644
--- a/bmc/test/firmware_state_uploadinprogress_unittest.cpp
+++ b/bmc/test/firmware_state_uploadinprogress_unittest.cpp
@@ -40,8 +40,7 @@
  * will inform what canHandleBlob will return.
  */
 class FirmwareHandlerUploadInProgressTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerUploadInProgressTest, GetBlobIdsVerifyOutputActiveImage)
 {
diff --git a/bmc/test/firmware_state_verificationcompleted_unittest.cpp b/bmc/test/firmware_state_verificationcompleted_unittest.cpp
index 0c6bae7..f7b0998 100644
--- a/bmc/test/firmware_state_verificationcompleted_unittest.cpp
+++ b/bmc/test/firmware_state_verificationcompleted_unittest.cpp
@@ -42,10 +42,9 @@
  * indicates a successful verification.
  */
 
-class FirmwareHandlerVerificationCompletedTest
-    : public IpmiOnlyFirmwareStaticTest
-{
-};
+class FirmwareHandlerVerificationCompletedTest :
+    public IpmiOnlyFirmwareStaticTest
+{};
 
 /*
  * deleteBlob(blob)
diff --git a/bmc/test/firmware_state_verificationpending_unittest.cpp b/bmc/test/firmware_state_verificationpending_unittest.cpp
index c9b8e92..3b958c1 100644
--- a/bmc/test/firmware_state_verificationpending_unittest.cpp
+++ b/bmc/test/firmware_state_verificationpending_unittest.cpp
@@ -43,8 +43,7 @@
  */
 
 class FirmwareHandlerVerificationPendingTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * getBlobIds
diff --git a/bmc/test/firmware_state_verificationstarted_unittest.cpp b/bmc/test/firmware_state_verificationstarted_unittest.cpp
index a974c2b..df2c422 100644
--- a/bmc/test/firmware_state_verificationstarted_unittest.cpp
+++ b/bmc/test/firmware_state_verificationstarted_unittest.cpp
@@ -41,8 +41,7 @@
  */
 
 class FirmwareHandlerVerificationStartedTest : public IpmiOnlyFirmwareStaticTest
-{
-};
+{};
 
 /*
  * canHandleBlob(blob)
diff --git a/bmc/test/firmware_write_unittest.cpp b/bmc/test/firmware_write_unittest.cpp
index 481f3ec..a47134f 100644
--- a/bmc/test/firmware_write_unittest.cpp
+++ b/bmc/test/firmware_write_unittest.cpp
@@ -21,12 +21,10 @@
 using ::testing::Return;
 
 class FirmwareHandlerWriteTestIpmiOnly : public IpmiOnlyFirmwareTest
-{
-};
+{};
 
 class FirmwareHandlerWriteTestLpc : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerWriteTestIpmiOnly, DataTypeIpmiWriteSuccess)
 {
diff --git a/bmc/test/firmware_writemeta_unittest.cpp b/bmc/test/firmware_writemeta_unittest.cpp
index ef292b0..22f778d 100644
--- a/bmc/test/firmware_writemeta_unittest.cpp
+++ b/bmc/test/firmware_writemeta_unittest.cpp
@@ -19,8 +19,7 @@
 using ::testing::Return;
 
 class FirmwareHandlerWriteMetaTest : public FakeLpcFirmwareTest
-{
-};
+{};
 
 TEST_F(FirmwareHandlerWriteMetaTest, WriteConfigParametersFailIfOverIPMI)
 {
