clang-tidy: Enable modernize-use-override

Fixes: b/234876269
Change-Id: Idd4ad75e571ac464d253ef9497759d31c5ade7b1
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/100160
Pigweed-Auto-Submit: Ted Pudlik <tpudlik@google.com>
Commit-Queue: Ted Pudlik <tpudlik@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
diff --git a/.clang-tidy b/.clang-tidy
index 10f27f3..5cdeb12 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -42,6 +42,7 @@
     modernize-use-equals-delete,
     modernize-use-noexcept,
     modernize-use-nullptr,
+    modernize-use-override,
     modernize-use-transparent-functors,
     modernize-use-uncaught-exceptions,
     performance-faster-string-find,
diff --git a/pw_analog/public/pw_analog/microvolt_input.h b/pw_analog/public/pw_analog/microvolt_input.h
index 6a3a562..a40e17b 100644
--- a/pw_analog/public/pw_analog/microvolt_input.h
+++ b/pw_analog/public/pw_analog/microvolt_input.h
@@ -38,7 +38,7 @@
     int32_t min_voltage_uv;  // Microvolts at AnalogInput::Limits::min.
   };
 
-  virtual ~MicrovoltInput() = default;
+  ~MicrovoltInput() override = default;
 
   // Blocks until the specified timeout duration has elapsed or the voltage
   // sample has been returned, whichever comes first.
diff --git a/pw_blob_store/public/pw_blob_store/blob_store.h b/pw_blob_store/public/pw_blob_store/blob_store.h
index ef360f0..5cad2b9 100644
--- a/pw_blob_store/public/pw_blob_store/blob_store.h
+++ b/pw_blob_store/public/pw_blob_store/blob_store.h
@@ -66,7 +66,7 @@
         : store_(store), metadata_buffer_(metadata_buffer), open_(false) {}
     BlobWriter(const BlobWriter&) = delete;
     BlobWriter& operator=(const BlobWriter&) = delete;
-    virtual ~BlobWriter() {
+    ~BlobWriter() override {
       if (open_) {
         Close().IgnoreError();  // TODO(pwbug/387): Handle Status properly
       }
@@ -200,7 +200,7 @@
         : BlobWriter(store, metadata_buffer) {}
     DeferredWriter(const DeferredWriter&) = delete;
     DeferredWriter& operator=(const DeferredWriter&) = delete;
-    virtual ~DeferredWriter() {}
+    ~DeferredWriter() override {}
 
     // Flush data in the write buffer. Only a multiple of flash_write_size_bytes
     // are written in the flush. Any remainder is held until later for either
@@ -255,7 +255,7 @@
     BlobReader(const BlobReader&) = delete;
     BlobReader& operator=(const BlobReader&) = delete;
 
-    ~BlobReader() {
+    ~BlobReader() override {
       if (open_) {
         Close().IgnoreError();
       }
diff --git a/pw_i2c/public/pw_i2c/initiator_mock.h b/pw_i2c/public/pw_i2c/initiator_mock.h
index 375446d..7ef3936 100644
--- a/pw_i2c/public/pw_i2c/initiator_mock.h
+++ b/pw_i2c/public/pw_i2c/initiator_mock.h
@@ -137,7 +137,7 @@
   }
 
   // Runs Finalize() regardless of whether it was already optionally finalized.
-  ~MockInitiator();
+  ~MockInitiator() override;
 
  private:
   // Implements a mocked backend for the i2c initiator.
diff --git a/pw_multisink/multisink_threaded_test.cc b/pw_multisink/multisink_threaded_test.cc
index 0b93f54..30c5536 100644
--- a/pw_multisink/multisink_threaded_test.cc
+++ b/pw_multisink/multisink_threaded_test.cc
@@ -136,7 +136,7 @@
                                uint32_t expected_message_and_drop_count)
       : LogPopReaderThread(multisink, expected_message_and_drop_count) {}
 
-  virtual void ReadAllEntries() {
+  void ReadAllEntries() override {
     do {
       uint32_t drop_count = 0;
       uint32_t ingress_drop_count = 0;
diff --git a/pw_protobuf/public/pw_protobuf/stream_decoder.h b/pw_protobuf/public/pw_protobuf/stream_decoder.h
index 18f5cfd..20625c5 100644
--- a/pw_protobuf/public/pw_protobuf/stream_decoder.h
+++ b/pw_protobuf/public/pw_protobuf/stream_decoder.h
@@ -73,7 +73,7 @@
   // will also not.
   class BytesReader : public stream::RelativeSeekableReader {
    public:
-    ~BytesReader() { decoder_.CloseBytesReader(*this); }
+    ~BytesReader() override { decoder_.CloseBytesReader(*this); }
 
     constexpr size_t field_size() const { return end_offset_ - start_offset_; }
 
diff --git a/pw_protobuf/stream_decoder_test.cc b/pw_protobuf/stream_decoder_test.cc
index 324b561..d28141c 100644
--- a/pw_protobuf/stream_decoder_test.cc
+++ b/pw_protobuf/stream_decoder_test.cc
@@ -35,7 +35,7 @@
   const std::byte* data() const { return reader_.data(); }
 
  private:
-  virtual StatusWithSize DoRead(ByteSpan destination) override {
+  StatusWithSize DoRead(ByteSpan destination) override {
     const pw::Result<pw::ByteSpan> result = reader_.Read(destination);
     if (!result.ok()) {
       return StatusWithSize(result.status(), 0);
diff --git a/pw_result/statusor_test.cc b/pw_result/statusor_test.cc
index 62dab32..5219945 100644
--- a/pw_result/statusor_test.cc
+++ b/pw_result/statusor_test.cc
@@ -101,7 +101,7 @@
 
 class Derived : public Base1, public Base2 {
  public:
-  virtual ~Derived() {}
+  ~Derived() override {}
   int evenmorepad;
 };
 
diff --git a/pw_spi/public/pw_spi/initiator_mock.h b/pw_spi/public/pw_spi/initiator_mock.h
index e7f3979..a814261 100644
--- a/pw_spi/public/pw_spi/initiator_mock.h
+++ b/pw_spi/public/pw_spi/initiator_mock.h
@@ -87,7 +87,7 @@
   }
 
   // Runs Finalize() regardless of whether it was already optionally finalized.
-  ~MockInitiator();
+  ~MockInitiator() override;
 
   // Implements a mocked backend for the SPI initiator.
   //
diff --git a/pw_tls_client/public/pw_tls_client/session.h b/pw_tls_client/public/pw_tls_client/session.h
index 3840453..d8b851f 100644
--- a/pw_tls_client/public/pw_tls_client/session.h
+++ b/pw_tls_client/public/pw_tls_client/session.h
@@ -41,7 +41,7 @@
   // Close() will be called if the Session is open. Since Close() returns a
   // pw::Status which cannot be forwarded from a destructor for callers to
   // check. Backend shall assert check that it is OkStatus().
-  virtual ~Session();
+  ~Session() override;
 
   // Starts a TLS connection. The backend performs TLS handshaking and
   // certificate verification/revocation/expiration check.
diff --git a/pw_transfer/client_test.cc b/pw_transfer/client_test.cc
index 5389f04..01db655 100644
--- a/pw_transfer/client_test.cc
+++ b/pw_transfer/client_test.cc
@@ -50,7 +50,7 @@
                 max_bytes_to_receive),
         system_thread_(TransferThreadOptions(), transfer_thread_) {}
 
-  ~ReadTransfer() {
+  ~ReadTransfer() override {
     transfer_thread_.Terminate();
     system_thread_.join();
   }
@@ -903,7 +903,7 @@
         client_(context_.client(), context_.channel().id(), transfer_thread_),
         system_thread_(TransferThreadOptions(), transfer_thread_) {}
 
-  ~WriteTransfer() {
+  ~WriteTransfer() override {
     transfer_thread_.Terminate();
     system_thread_.join();
   }
diff --git a/pw_transfer/public/pw_transfer/handler.h b/pw_transfer/public/pw_transfer/handler.h
index de1d55e..bf6630a 100644
--- a/pw_transfer/public/pw_transfer/handler.h
+++ b/pw_transfer/public/pw_transfer/handler.h
@@ -103,7 +103,7 @@
   constexpr ReadOnlyHandler(uint32_t resource_id, stream::Reader& reader)
       : internal::Handler(resource_id, &reader) {}
 
-  virtual ~ReadOnlyHandler() = default;
+  ~ReadOnlyHandler() override = default;
 
   Status PrepareRead() override { return OkStatus(); }
 
@@ -124,7 +124,7 @@
   constexpr WriteOnlyHandler(uint32_t resource_id, stream::Writer& writer)
       : internal::Handler(resource_id, &writer) {}
 
-  virtual ~WriteOnlyHandler() = default;
+  ~WriteOnlyHandler() override = default;
 
   // Reads are not supported.
   Status PrepareRead() final { return Status::PermissionDenied(); }
@@ -146,7 +146,7 @@
       : internal::Handler(resource_id,
                           &static_cast<stream::Reader&>(reader_writer)) {}
 
-  virtual ~ReadWriteHandler() = default;
+  ~ReadWriteHandler() override = default;
 
   // Both reads and writes are supported.
   Status PrepareRead() override { return OkStatus(); }
diff --git a/pw_transfer/transfer_test.cc b/pw_transfer/transfer_test.cc
index 20c61a6..75a5145 100644
--- a/pw_transfer/transfer_test.cc
+++ b/pw_transfer/transfer_test.cc
@@ -125,7 +125,7 @@
     transfer_thread_.WaitUntilEventIsProcessed();
   }
 
-  ~ReadTransfer() {
+  ~ReadTransfer() override {
     transfer_thread_.Terminate();
     system_thread_.join();
   }
@@ -745,7 +745,7 @@
     transfer_thread_.WaitUntilEventIsProcessed();
   }
 
-  ~WriteTransfer() {
+  ~WriteTransfer() override {
     transfer_thread_.Terminate();
     system_thread_.join();
   }
diff --git a/pw_transfer/transfer_thread_test.cc b/pw_transfer/transfer_thread_test.cc
index 89854cf..3ef01bb 100644
--- a/pw_transfer/transfer_thread_test.cc
+++ b/pw_transfer/transfer_thread_test.cc
@@ -48,7 +48,7 @@
         transfer_thread_(chunk_buffer_, encode_buffer_),
         system_thread_(TransferThreadOptions(), transfer_thread_) {}
 
-  ~TransferThreadTest() {
+  ~TransferThreadTest() override {
     transfer_thread_.Terminate();
     system_thread_.join();
   }
diff --git a/pw_unit_test/framework_test.cc b/pw_unit_test/framework_test.cc
index 19cb9d5..939c818 100644
--- a/pw_unit_test/framework_test.cc
+++ b/pw_unit_test/framework_test.cc
@@ -183,7 +183,7 @@
  protected:
   Expectations() : cool_number_(3) { PW_CHECK_INT_EQ(cool_number_, 3); }
 
-  ~Expectations() { PW_CHECK_INT_EQ(cool_number_, 14159); }
+  ~Expectations() override { PW_CHECK_INT_EQ(cool_number_, 14159); }
 
   int cool_number_;
 };
@@ -194,7 +194,7 @@
  protected:
   SetUpAndTearDown() : value_(0) { EXPECT_EQ(value_, 0); }
 
-  ~SetUpAndTearDown() { EXPECT_EQ(value_, 1); }
+  ~SetUpAndTearDown() override { EXPECT_EQ(value_, 1); }
 
   void SetUp() override { value_ = 1337; }