diff --git a/item_updater_main.cpp b/item_updater_main.cpp
index e5991f3..69ee015 100644
--- a/item_updater_main.cpp
+++ b/item_updater_main.cpp
@@ -15,7 +15,7 @@
 
 #include <system_error>
 
-int main(int argc, char* argv[])
+int main(int, char*[])
 {
     using namespace openpower::software::updater;
     using namespace phosphor::logging;
diff --git a/mmc/activation_mmc.cpp b/mmc/activation_mmc.cpp
index 84a1e98..b5a5669 100644
--- a/mmc/activation_mmc.cpp
+++ b/mmc/activation_mmc.cpp
@@ -16,7 +16,7 @@
 void ActivationMMC::startActivation()
 {}
 
-void ActivationMMC::unitStateChange(sdbusplus::message::message& msg)
+void ActivationMMC::unitStateChange(sdbusplus::message::message&)
 {}
 
 void ActivationMMC::finishActivation()
diff --git a/mmc/item_updater_mmc.cpp b/mmc/item_updater_mmc.cpp
index 4d70ccf..3e58612 100644
--- a/mmc/item_updater_mmc.cpp
+++ b/mmc/item_updater_mmc.cpp
@@ -42,7 +42,7 @@
     return version;
 }
 
-bool ItemUpdaterMMC::validateImage(const std::string& path)
+bool ItemUpdaterMMC::validateImage(const std::string&)
 {
     return true;
 }
@@ -58,7 +58,7 @@
     return versionId == functionalVersionId;
 }
 
-void ItemUpdaterMMC::freePriority(uint8_t value, const std::string& versionId)
+void ItemUpdaterMMC::freePriority(uint8_t, const std::string&)
 {}
 
 void ItemUpdaterMMC::deleteAll()
@@ -69,7 +69,7 @@
     return true;
 }
 
-void ItemUpdaterMMC::updateFunctionalAssociation(const std::string& versionId)
+void ItemUpdaterMMC::updateFunctionalAssociation(const std::string&)
 {}
 
 void GardResetMMC::reset()
diff --git a/msl_verify_main.cpp b/msl_verify_main.cpp
index 1810632..1a43faf 100644
--- a/msl_verify_main.cpp
+++ b/msl_verify_main.cpp
@@ -6,7 +6,7 @@
 #include <phosphor-logging/elog.hpp>
 #include <xyz/openbmc_project/Software/Version/error.hpp>
 
-int main(int argc, char* argv[])
+int main(int, char*[])
 {
     using MinimumShipLevel = openpower::software::image::MinimumShipLevel;
     MinimumShipLevel minimumShipLevel(PNOR_MSL);
diff --git a/static/item_updater_static.cpp b/static/item_updater_static.cpp
index ea9b7b8..7695aa0 100644
--- a/static/item_updater_static.cpp
+++ b/static/item_updater_static.cpp
@@ -227,7 +227,7 @@
     return version;
 }
 
-bool ItemUpdaterStatic::validateImage(const std::string& path)
+bool ItemUpdaterStatic::validateImage(const std::string&)
 {
     // There is no need to validate static layout pnor
     return true;
@@ -327,8 +327,7 @@
     return versionId == functionalVersionId;
 }
 
-void ItemUpdaterStatic::freePriority(uint8_t value,
-                                     const std::string& versionId)
+void ItemUpdaterStatic::freePriority(uint8_t, const std::string&)
 {}
 
 void ItemUpdaterStatic::deleteAll()
diff --git a/ubi/watch.cpp b/ubi/watch.cpp
index 9cbed5d..1b68fd1 100644
--- a/ubi/watch.cpp
+++ b/ubi/watch.cpp
@@ -65,8 +65,7 @@
     }
 }
 
-int Watch::callback(sd_event_source* s, int fd, uint32_t revents,
-                    void* userdata)
+int Watch::callback(sd_event_source*, int fd, uint32_t revents, void* userdata)
 {
     if (!(revents & EPOLLIN))
     {
