trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bc...@apache.org
Subject [trafficserver] branch master updated: Ran clang-tidy with modernize-use-override
Date Tue, 01 May 2018 16:32:56 GMT
This is an automated email from the ASF dual-hosted git repository.

bcall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 53c2282  Ran clang-tidy with modernize-use-override
53c2282 is described below

commit 53c2282baab34096bfae5abb498e8bf29790c1cf
Author: Bryan Call <bcall@apache.org>
AuthorDate: Mon Apr 30 14:57:01 2018 -0700

    Ran clang-tidy with modernize-use-override
---
 .../DelayTransformationPlugin.cc                   |  18 +--
 example/cppapi/websocket/WebSocket.h               |   8 +-
 iocore/cache/I_Cache.h                             |  16 +--
 iocore/cache/P_CacheDisk.h                         |   2 +-
 iocore/cache/P_CacheInternal.h                     |  44 +++----
 iocore/cache/P_CacheTest.h                         |   6 +-
 iocore/cache/P_CacheVol.h                          |   2 +-
 iocore/dns/I_DNSProcessor.h                        |   4 +-
 iocore/dns/P_SplitDNSProcessor.h                   |   2 +-
 iocore/eventsystem/I_EThread.h                     |   6 +-
 iocore/eventsystem/I_Event.h                       |   2 +-
 iocore/eventsystem/I_EventProcessor.h              |   2 +-
 iocore/eventsystem/I_IOBuffer.h                    |   4 +-
 iocore/eventsystem/I_Lock.h                        |   2 +-
 iocore/eventsystem/I_Tasks.h                       |   2 +-
 iocore/eventsystem/I_VConnection.h                 |  16 +--
 iocore/hostdb/I_HostDBProcessor.h                  |   4 +-
 iocore/net/I_NetProcessor.h                        |   2 +-
 iocore/net/I_NetVConnection.h                      |  14 +-
 iocore/net/I_SessionAccept.h                       |   2 +-
 iocore/net/I_UDPConnection.h                       |   2 +-
 iocore/net/I_UDPNet.h                              |   2 +-
 iocore/net/LuaSNIConfig.h                          |   2 +-
 iocore/net/P_NetAccept.h                           |   6 +-
 iocore/net/P_NetVCTest.h                           |   4 +-
 iocore/net/P_SSLCertLookup.h                       |   2 +-
 iocore/net/P_SSLConfig.h                           |   4 +-
 iocore/net/P_SSLNetAccept.h                        |   6 +-
 iocore/net/P_SSLNetProcessor.h                     |   8 +-
 iocore/net/P_SSLNetVConnection.h                   |   2 +-
 iocore/net/P_SSLNextProtocolAccept.h               |   6 +-
 iocore/net/P_SSLSNI.h                              |   2 +-
 iocore/net/P_UDPConnection.h                       |   2 +-
 iocore/net/P_UDPIOEvent.h                          |   2 +-
 iocore/net/P_UDPNet.h                              |   2 +-
 iocore/net/P_UDPPacket.h                           |   4 +-
 iocore/net/P_UnixNet.h                             |   6 +-
 iocore/net/P_UnixNetVConnection.h                  |   2 +-
 iocore/net/P_UnixUDPConnection.h                   |   4 +-
 iocore/utils/I_OneWayMultiTunnel.h                 |   4 +-
 iocore/utils/I_OneWayTunnel.h                      |   2 +-
 lib/cppapi/include/atscppapi/Async.h               |   8 +-
 lib/cppapi/include/atscppapi/AsyncHttpFetch.h      |   4 +-
 lib/cppapi/include/atscppapi/AsyncTimer.h          |   6 +-
 lib/cppapi/include/atscppapi/GlobalPlugin.h        |   2 +-
 .../include/atscppapi/GzipDeflateTransformation.h  |   2 +-
 .../include/atscppapi/GzipInflateTransformation.h  |   2 +-
 lib/cppapi/include/atscppapi/InterceptPlugin.h     |   2 +-
 lib/cppapi/include/atscppapi/TransactionPlugin.h   |   2 +-
 .../include/atscppapi/TransformationPlugin.h       |   2 +-
 lib/ts/CryptoHash.h                                |   4 +-
 lib/ts/HashFNV.h                                   |  16 +--
 lib/ts/HashMD5.h                                   |  12 +-
 lib/ts/HashSip.h                                   |   8 +-
 lib/ts/INK_MD5.h                                   |   4 +-
 lib/ts/MMH.h                                       |   4 +-
 lib/ts/Ptr.h                                       |   2 +-
 lib/ts/SHA256.h                                    |   8 +-
 lib/ts/unit-tests/test_IpMap.cc                    |   8 +-
 lib/tsconfig/Errata.h                              |   2 +-
 plugins/esi/fetcher/HttpDataFetcherImpl.h          |  10 +-
 plugins/esi/lib/EsiGunzip.h                        |   2 +-
 plugins/esi/lib/EsiGzip.h                          |   2 +-
 plugins/esi/lib/Expression.h                       |   2 +-
 plugins/esi/lib/FailureInfo.h                      |   2 +-
 plugins/esi/lib/Variables.h                        |   2 +-
 plugins/experimental/cachekey/configs.h            |  12 +-
 plugins/experimental/cachekey/pattern.h            |   4 +-
 plugins/experimental/geoip_acl/acl.h               |   8 +-
 plugins/experimental/inliner/inliner-handler.h     |   6 +-
 plugins/experimental/inliner/ts.h                  |   8 +-
 .../server_push_preload/server_push_preload.cc     |   4 +-
 plugins/header_rewrite/condition.h                 |   2 +-
 plugins/header_rewrite/conditions.h                | 144 ++++++++++-----------
 plugins/header_rewrite/operator.h                  |   6 +-
 plugins/header_rewrite/operators.h                 |  76 +++++------
 plugins/s3_auth/aws_auth_v4_wrap.h                 |  14 +-
 proxy/ControlMatcher.h                             |   8 +-
 proxy/IPAllow.h                                    |   2 +-
 proxy/InkAPIInternal.h                             |   2 +-
 proxy/InkIOCoreAPI.cc                              |   2 +-
 proxy/ParentConsistentHash.h                       |   9 +-
 proxy/ParentRoundRobin.h                           |   9 +-
 proxy/ParentSelection.h                            |   2 +-
 proxy/PluginVC.h                                   |  60 ++++-----
 proxy/ProtocolProbeSessionAccept.h                 |   6 +-
 proxy/Show.h                                       |   2 +-
 proxy/StatPages.h                                  |   2 +-
 proxy/TransformInternal.h                          |  10 +-
 proxy/api/ts/InkAPIPrivateIOCore.h                 |  20 +--
 proxy/hdrs/HdrHeap.h                               |   2 +-
 proxy/http/HttpCacheSM.h                           |   2 +-
 proxy/http/HttpConfig.h                            |   2 +-
 proxy/http/HttpPages.h                             |   2 +-
 proxy/http/HttpServerSession.h                     |  12 +-
 proxy/http/HttpSessionAccept.h                     |   6 +-
 proxy/http/remap/RemapPlugins.h                    |   2 +-
 proxy/http/remap/RemapProcessor.h                  |   4 +-
 proxy/http/remap/UrlRewrite.h                      |   2 +-
 proxy/http2/Http2ClientSession.h                   |   4 +-
 proxy/http2/Http2SessionAccept.h                   |   6 +-
 proxy/http2/Http2Stream.h                          |  12 +-
 proxy/logging/LogCollationAccept.h                 |   2 +-
 proxy/logging/LogCollationClientSM.h               |   2 +-
 proxy/logging/LogConfig.h                          |   2 +-
 proxy/logging/LogFieldAliasMap.h                   |  10 +-
 proxy/logging/LogFile.h                            |   4 +-
 proxy/logging/LogFilter.h                          |  26 ++--
 proxy/logging/LogFormat.h                          |   2 +-
 proxy/logging/LogHost.h                            |   4 +-
 proxy/logging/LogObject.h                          |   2 +-
 111 files changed, 440 insertions(+), 438 deletions(-)

diff --git a/example/cppapi/delay_transformation_plugin/DelayTransformationPlugin.cc b/example/cppapi/delay_transformation_plugin/DelayTransformationPlugin.cc
index df57fa3..e2036ef 100644
--- a/example/cppapi/delay_transformation_plugin/DelayTransformationPlugin.cc
+++ b/example/cppapi/delay_transformation_plugin/DelayTransformationPlugin.cc
@@ -51,21 +51,21 @@ public:
   }
 
   void
-  handleSendRequestHeaders(Transaction &transaction)
+  handleSendRequestHeaders(Transaction &transaction) override
   {
     transaction.getServerRequest().getHeaders()["X-Content-Delayed"] = "1";
     transaction.resume();
   }
 
   void
-  handleSendResponseHeaders(Transaction &transaction)
+  handleSendResponseHeaders(Transaction &transaction) override
   {
     transaction.getClientResponse().getHeaders()["X-Content-Delayed"] = "1";
     transaction.resume();
   }
 
   void
-  consume(ts::string_view data)
+  consume(ts::string_view data) override
   {
     TS_DEBUG(TAG, "Consuming...");
     produce(data);
@@ -80,13 +80,13 @@ public:
   }
 
   void
-  handleInputComplete()
+  handleInputComplete() override
   {
     TS_DEBUG(TAG, "handleInputComplete");
     setOutputComplete();
   }
 
-  virtual ~DelayTransformationPlugin() {}
+  ~DelayTransformationPlugin() override {}
 };
 
 class GlobalHookPlugin : public GlobalPlugin
@@ -98,15 +98,15 @@ public:
     registerHook(HOOK_READ_RESPONSE_HEADERS);
   }
 
-  virtual void
-  handleReadRequestHeadersPostRemap(Transaction &transaction)
+  void
+  handleReadRequestHeadersPostRemap(Transaction &transaction) override
   {
     transaction.addPlugin(new DelayTransformationPlugin(transaction, TransformationPlugin::REQUEST_TRANSFORMATION));
     transaction.resume();
   }
 
-  virtual void
-  handleReadResponseHeaders(Transaction &transaction)
+  void
+  handleReadResponseHeaders(Transaction &transaction) override
   {
     transaction.addPlugin(new DelayTransformationPlugin(transaction, TransformationPlugin::RESPONSE_TRANSFORMATION));
     transaction.resume();
diff --git a/example/cppapi/websocket/WebSocket.h b/example/cppapi/websocket/WebSocket.h
index 33f55ba..7c6d0dd 100644
--- a/example/cppapi/websocket/WebSocket.h
+++ b/example/cppapi/websocket/WebSocket.h
@@ -41,10 +41,10 @@ class WebSocket : public InterceptPlugin
 {
 public:
   WebSocket(Transaction &transaction);
-  ~WebSocket();
+  ~WebSocket() override;
 
-  void consume(const std::string &data, InterceptPlugin::RequestDataType type);
-  void handleInputComplete();
+  void consume(const std::string &data, InterceptPlugin::RequestDataType type) override;
+  void handleInputComplete() override;
 
   void ws_send(std::string const &data, int code);
   void ws_receive(std::string const &data, int code);
@@ -62,5 +62,5 @@ class WebSocketInstaller : public GlobalPlugin
 public:
   WebSocketInstaller();
 
-  void handleReadRequestHeadersPreRemap(Transaction &transaction);
+  void handleReadRequestHeadersPreRemap(Transaction &transaction) override;
 };
diff --git a/iocore/cache/I_Cache.h b/iocore/cache/I_Cache.h
index 6be5e04..415a10b 100644
--- a/iocore/cache/I_Cache.h
+++ b/iocore/cache/I_Cache.h
@@ -70,7 +70,7 @@ struct CacheProcessor : public Processor {
   {
   }
 
-  virtual int start(int n_cache_threads = 0, size_t stacksize = DEFAULT_STACKSIZE);
+  int start(int n_cache_threads = 0, size_t stacksize = DEFAULT_STACKSIZE) override;
   virtual int start_internal(int flags = 0);
   void stop();
 
@@ -172,14 +172,14 @@ CacheProcessor::afterInitCallbackSet(CALLBACK_FUNC cb)
 }
 
 struct CacheVConnection : public VConnection {
-  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf)                           = 0;
-  virtual VIO *do_io_pread(Continuation *c, int64_t nbytes, MIOBuffer *buf, int64_t offset)  = 0;
-  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) = 0;
-  void do_io_close(int lerrno = -1)                                                          = 0;
-  void reenable(VIO *avio)                                                                   = 0;
-  void reenable_re(VIO *avio)                                                                = 0;
+  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf) override                           = 0;
+  virtual VIO *do_io_pread(Continuation *c, int64_t nbytes, MIOBuffer *buf, int64_t offset)           = 0;
+  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) override = 0;
+  void do_io_close(int lerrno = -1) override                                                          = 0;
+  void reenable(VIO *avio) override                                                                   = 0;
+  void reenable_re(VIO *avio) override                                                                = 0;
   void
-  do_io_shutdown(ShutdownHowTo_t howto)
+  do_io_shutdown(ShutdownHowTo_t howto) override
   {
     (void)howto;
     ink_assert(!"CacheVConnection::do_io_shutdown unsupported");
diff --git a/iocore/cache/P_CacheDisk.h b/iocore/cache/P_CacheDisk.h
index 5fa285d..51f2462 100644
--- a/iocore/cache/P_CacheDisk.h
+++ b/iocore/cache/P_CacheDisk.h
@@ -104,7 +104,7 @@ struct CacheDisk : public Continuation {
 
   CacheDisk() : Continuation(new_ProxyMutex()) {}
 
-  ~CacheDisk();
+  ~CacheDisk() override;
 
   int open(bool clear);
   int open(char *s, off_t blocks, off_t skip, int hw_sector_size, int fildes, bool clear);
diff --git a/iocore/cache/P_CacheInternal.h b/iocore/cache/P_CacheInternal.h
index 08f39b7..1b35d56 100644
--- a/iocore/cache/P_CacheInternal.h
+++ b/iocore/cache/P_CacheInternal.h
@@ -231,24 +231,24 @@ extern int cache_config_read_while_writer_max_retries;
 struct CacheVC : public CacheVConnection {
   CacheVC();
 
-  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf);
-  VIO *do_io_pread(Continuation *c, int64_t nbytes, MIOBuffer *buf, int64_t offset);
-  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false);
-  void do_io_close(int lerrno = -1);
-  void reenable(VIO *avio);
-  void reenable_re(VIO *avio);
-  bool get_data(int i, void *data);
-  bool set_data(int i, void *data);
+  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf) override;
+  VIO *do_io_pread(Continuation *c, int64_t nbytes, MIOBuffer *buf, int64_t offset) override;
+  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) override;
+  void do_io_close(int lerrno = -1) override;
+  void reenable(VIO *avio) override;
+  void reenable_re(VIO *avio) override;
+  bool get_data(int i, void *data) override;
+  bool set_data(int i, void *data) override;
 
   bool
-  is_ram_cache_hit() const
+  is_ram_cache_hit() const override
   {
     ink_assert(vio.op == VIO::READ);
     return !f.not_from_ram_cache;
   }
 
   int
-  get_header(void **ptr, int *len)
+  get_header(void **ptr, int *len) override
   {
     if (first_buf) {
       Doc *doc = (Doc *)first_buf->data();
@@ -261,7 +261,7 @@ struct CacheVC : public CacheVConnection {
   }
 
   int
-  set_header(void *ptr, int len)
+  set_header(void *ptr, int len) override
   {
     header_to_write     = ptr;
     header_to_write_len = len;
@@ -269,7 +269,7 @@ struct CacheVC : public CacheVConnection {
   }
 
   int
-  get_single_data(void **ptr, int *len)
+  get_single_data(void **ptr, int *len) override
   {
     if (first_buf) {
       Doc *doc = (Doc *)first_buf->data();
@@ -284,7 +284,7 @@ struct CacheVC : public CacheVConnection {
   }
 
   int
-  get_volume_number() const
+  get_volume_number() const override
   {
     if (vol && vol->cache_vol) {
       return vol->cache_vol->vol_number;
@@ -294,7 +294,7 @@ struct CacheVC : public CacheVConnection {
   }
 
   bool
-  is_compressed_in_ram() const
+  is_compressed_in_ram() const override
   {
     ink_assert(vio.op == VIO::READ);
     return f.compressed_in_ram;
@@ -373,9 +373,9 @@ struct CacheVC : public CacheVConnection {
   int evacuateReadHead(int event, Event *e);
 
   void cancel_trigger();
-  virtual int64_t get_object_size();
-  virtual void set_http_info(CacheHTTPInfo *info);
-  virtual void get_http_info(CacheHTTPInfo **info);
+  int64_t get_object_size() override;
+  void set_http_info(CacheHTTPInfo *info) override;
+  void get_http_info(CacheHTTPInfo **info) override;
   /** Get the fragment table.
       @return The address of the start of the fragment table,
       or @c nullptr if there is no fragment table.
@@ -385,11 +385,11 @@ struct CacheVC : public CacheVConnection {
       @return Length of header data used for alternates.
    */
   virtual uint32_t load_http_info(CacheHTTPInfoVector *info, struct Doc *doc, RefCountObj *block_ptr = nullptr);
-  virtual bool is_pread_capable();
-  virtual bool set_pin_in_cache(time_t time_pin);
-  virtual time_t get_pin_in_cache();
-  virtual bool set_disk_io_priority(int priority);
-  virtual int get_disk_io_priority();
+  bool is_pread_capable() override;
+  bool set_pin_in_cache(time_t time_pin) override;
+  time_t get_pin_in_cache() override;
+  bool set_disk_io_priority(int priority) override;
+  int get_disk_io_priority() override;
 
 // offsets from the base stat
 #define CACHE_STAT_ACTIVE 0
diff --git a/iocore/cache/P_CacheTest.h b/iocore/cache/P_CacheTest.h
index d991b96..3b369fd 100644
--- a/iocore/cache/P_CacheTest.h
+++ b/iocore/cache/P_CacheTest.h
@@ -112,18 +112,18 @@ struct CacheTestSM : public RegressionSM {
 
   // RegressionSM API
   void
-  run()
+  run() override
   {
     rprintf(this->t, "running %s (%p)\n", this->cache_test_name, this);
     SCOPED_MUTEX_LOCK(lock, mutex, this_ethread());
     timeout = eventProcessor.schedule_imm(this);
   }
 
-  virtual RegressionSM *clone() = 0;
+  RegressionSM *clone() override = 0;
 
   CacheTestSM(RegressionTest *t, const char *name);
   CacheTestSM(const CacheTestSM &ao);
-  ~CacheTestSM();
+  ~CacheTestSM() override;
 };
 
 // It is 2010 and C++ STILL doesn't have closures, a technology of the 1950s, unbelievable
diff --git a/iocore/cache/P_CacheVol.h b/iocore/cache/P_CacheVol.h
index d8c334c..2f0d2db 100644
--- a/iocore/cache/P_CacheVol.h
+++ b/iocore/cache/P_CacheVol.h
@@ -267,7 +267,7 @@ struct Vol : public Continuation {
     SET_HANDLER(&Vol::aggWrite);
   }
 
-  ~Vol() { ats_memalign_free(agg_buffer); }
+  ~Vol() override { ats_memalign_free(agg_buffer); }
 };
 
 struct AIO_Callback_handler : public Continuation {
diff --git a/iocore/dns/I_DNSProcessor.h b/iocore/dns/I_DNSProcessor.h
index bc0650b..02aa4ca 100644
--- a/iocore/dns/I_DNSProcessor.h
+++ b/iocore/dns/I_DNSProcessor.h
@@ -51,7 +51,7 @@ struct HostEnt : RefCountObj {
   SRVHosts srv_hosts;
   bool good = true;
   bool isNameError();
-  virtual void free();
+  void free() override;
 };
 
 extern EventType ET_DNS;
@@ -111,7 +111,7 @@ struct DNSProcessor : public Processor {
   //
   /* currently dns system uses event threads
    * dont pass any value to the call */
-  int start(int no_of_extra_dns_threads = 0, size_t stacksize = DEFAULT_STACKSIZE);
+  int start(int no_of_extra_dns_threads = 0, size_t stacksize = DEFAULT_STACKSIZE) override;
 
   // Open/close a link to a 'named' (done in start())
   //
diff --git a/iocore/dns/P_SplitDNSProcessor.h b/iocore/dns/P_SplitDNSProcessor.h
index ad0a07e..33de46e 100644
--- a/iocore/dns/P_SplitDNSProcessor.h
+++ b/iocore/dns/P_SplitDNSProcessor.h
@@ -89,7 +89,7 @@ struct SplitDNSResult {
    -------------------------------------------------------------- */
 struct SplitDNS : public ConfigInfo {
   SplitDNS();
-  ~SplitDNS();
+  ~SplitDNS() override;
 
   void *getDNSRecord(const char *hostname);
   void findServer(RequestData *rdata, SplitDNSResult *result);
diff --git a/iocore/eventsystem/I_EThread.h b/iocore/eventsystem/I_EThread.h
index bbd7896..3b27f70 100644
--- a/iocore/eventsystem/I_EThread.h
+++ b/iocore/eventsystem/I_EThread.h
@@ -300,7 +300,7 @@ public:
   EThread(ThreadType att, Event *e);
   EThread(const EThread &) = delete;
   EThread &operator=(const EThread &) = delete;
-  virtual ~EThread();
+  ~EThread() override;
 
   Event *schedule(Event *e, bool fast_signal = false);
 
@@ -363,13 +363,13 @@ public:
     DefaultTailHandler(ProtectedQueue &q) : _q(q) {}
 
     int
-    waitForActivity(ink_hrtime timeout)
+    waitForActivity(ink_hrtime timeout) override
     {
       _q.wait(Thread::get_hrtime() + timeout);
       return 0;
     }
     void
-    signalActivity()
+    signalActivity() override
     {
       _q.signal();
     }
diff --git a/iocore/eventsystem/I_Event.h b/iocore/eventsystem/I_Event.h
index 12a9b18..339efdb 100644
--- a/iocore/eventsystem/I_Event.h
+++ b/iocore/eventsystem/I_Event.h
@@ -261,7 +261,7 @@ public:
 #endif
 
 #if defined(__GNUC__)
-  virtual ~Event() {}
+  ~Event() override {}
 #endif
 };
 
diff --git a/iocore/eventsystem/I_EventProcessor.h b/iocore/eventsystem/I_EventProcessor.h
index 89c9764..02b665f 100644
--- a/iocore/eventsystem/I_EventProcessor.h
+++ b/iocore/eventsystem/I_EventProcessor.h
@@ -249,7 +249,7 @@ public:
   //  Event *schedule_spawn(Continuation *c, int event, void *cookie = NULL);
 
   EventProcessor();
-  ~EventProcessor();
+  ~EventProcessor() override;
   EventProcessor(const EventProcessor &) = delete;
   EventProcessor &operator=(const EventProcessor &) = delete;
 
diff --git a/iocore/eventsystem/I_IOBuffer.h b/iocore/eventsystem/I_IOBuffer.h
index 3a37333..2105d7d 100644
--- a/iocore/eventsystem/I_IOBuffer.h
+++ b/iocore/eventsystem/I_IOBuffer.h
@@ -228,7 +228,7 @@ public:
     should not use this object or reference after this call.
 
   */
-  virtual void free();
+  void free() override;
 
   int64_t _size_index;
 
@@ -487,7 +487,7 @@ public:
     call.
 
   */
-  virtual void free();
+  void free() override;
 
   char *_start;
   char *_end;
diff --git a/iocore/eventsystem/I_Lock.h b/iocore/eventsystem/I_Lock.h
index c47f519..e97c7f8 100644
--- a/iocore/eventsystem/I_Lock.h
+++ b/iocore/eventsystem/I_Lock.h
@@ -219,7 +219,7 @@ public:
   void print_lock_stats(int flag);
 #endif // LOCK_CONTENTION_PROFILING
 #endif // DEBUG
-  void free();
+  void free() override;
 
   /**
     Constructor - use new_ProxyMutex() instead.
diff --git a/iocore/eventsystem/I_Tasks.h b/iocore/eventsystem/I_Tasks.h
index 9b34c2c..0484f36 100644
--- a/iocore/eventsystem/I_Tasks.h
+++ b/iocore/eventsystem/I_Tasks.h
@@ -31,7 +31,7 @@ extern EventType ET_TASK;
 class TasksProcessor : public Processor
 {
 public:
-  int start(int task_threads, size_t stacksize = DEFAULT_STACKSIZE);
+  int start(int task_threads, size_t stacksize = DEFAULT_STACKSIZE) override;
 };
 
 extern TasksProcessor tasksProcessor;
diff --git a/iocore/eventsystem/I_VConnection.h b/iocore/eventsystem/I_VConnection.h
index 7ea7f38..bec971f 100644
--- a/iocore/eventsystem/I_VConnection.h
+++ b/iocore/eventsystem/I_VConnection.h
@@ -152,7 +152,7 @@ typedef struct tsapi_vio *TSVIO;
 class VConnection : public Continuation
 {
 public:
-  virtual ~VConnection();
+  ~VConnection() override;
 
   /**
     Read data from the VConnection.
@@ -410,31 +410,31 @@ protected:
 };
 
 struct DummyVConnection : public AnnotatedVConnection {
-  virtual VIO *
+  VIO *
   do_io_write(Continuation * /* c ATS_UNUSED */, int64_t /* nbytes ATS_UNUSED */, IOBufferReader * /* buf ATS_UNUSED */,
-              bool /* owner ATS_UNUSED */)
+              bool /* owner ATS_UNUSED */) override
   {
     ink_assert(!"VConnection::do_io_write -- "
                 "cannot use default implementation");
     return nullptr;
   }
 
-  virtual VIO *
-  do_io_read(Continuation * /* c ATS_UNUSED */, int64_t /* nbytes ATS_UNUSED */, MIOBuffer * /* buf ATS_UNUSED */)
+  VIO *
+  do_io_read(Continuation * /* c ATS_UNUSED */, int64_t /* nbytes ATS_UNUSED */, MIOBuffer * /* buf ATS_UNUSED */) override
   {
     ink_assert(!"VConnection::do_io_read -- "
                 "cannot use default implementation");
     return nullptr;
   }
 
-  virtual void
-  do_io_close(int /* alerrno ATS_UNUSED */)
+  void
+  do_io_close(int /* alerrno ATS_UNUSED */) override
   {
     ink_assert(!"VConnection::do_io_close -- "
                 "cannot use default implementation");
   }
 
-  virtual void do_io_shutdown(ShutdownHowTo_t /* howto ATS_UNUSED */)
+  void do_io_shutdown(ShutdownHowTo_t /* howto ATS_UNUSED */) override
   {
     ink_assert(!"VConnection::do_io_shutdown -- "
                 "cannot use default implementation");
diff --git a/iocore/hostdb/I_HostDBProcessor.h b/iocore/hostdb/I_HostDBProcessor.h
index 942f5f9..b2dc768 100644
--- a/iocore/hostdb/I_HostDBProcessor.h
+++ b/iocore/hostdb/I_HostDBProcessor.h
@@ -156,7 +156,7 @@ struct HostDBInfo : public RefCountObj {
   }
 
   void
-  free()
+  free() override
   {
     Debug("hostdb", "freeing %d bytes at [%p]", (1 << (7 + iobuffer_index)), this);
     ioBufAllocator[iobuffer_index].free_void((void *)(this));
@@ -494,7 +494,7 @@ struct HostDBProcessor : public Processor {
   /* hostdb does not use any dedicated event threads
    * currently. Dont pass any value to start
    */
-  int start(int no_of_additional_event_threads = 0, size_t stacksize = DEFAULT_STACKSIZE);
+  int start(int no_of_additional_event_threads = 0, size_t stacksize = DEFAULT_STACKSIZE) override;
 
   // Private
   HostDBCache *cache();
diff --git a/iocore/net/I_NetProcessor.h b/iocore/net/I_NetProcessor.h
index d76172a..325a32a 100644
--- a/iocore/net/I_NetProcessor.h
+++ b/iocore/net/I_NetProcessor.h
@@ -209,7 +209,7 @@ public:
   NetProcessor(){};
 
   /** Private destructor. */
-  virtual ~NetProcessor(){};
+  ~NetProcessor() override{};
 
   /** This is MSS for connections we accept (client connections). */
   static int accept_mss;
diff --git a/iocore/net/I_NetVConnection.h b/iocore/net/I_NetVConnection.h
index 090711d..3d4d7b0 100644
--- a/iocore/net/I_NetVConnection.h
+++ b/iocore/net/I_NetVConnection.h
@@ -292,7 +292,7 @@ public:
     @return vio
 
   */
-  virtual VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf) = 0;
+  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf) override = 0;
 
   /**
     Initiates write. Thread-safe, may be called when not handling
@@ -328,7 +328,7 @@ public:
     @return vio pointer
 
   */
-  virtual VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) = 0;
+  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) override = 0;
 
   /**
     Closes the vconnection. A state machine MUST call do_io_close()
@@ -346,7 +346,7 @@ public:
     @param lerrno VIO:CLOSE for regular close or VIO::ABORT for aborts
 
   */
-  virtual void do_io_close(int lerrno = -1) = 0;
+  void do_io_close(int lerrno = -1) override = 0;
 
   /**
     Shuts down read side, write side, or both. do_io_shutdown() can
@@ -364,7 +364,7 @@ public:
     @param howto IO_SHUTDOWN_READ, IO_SHUTDOWN_WRITE, IO_SHUTDOWN_READWRITE
 
   */
-  virtual void do_io_shutdown(ShutdownHowTo_t howto) = 0;
+  void do_io_shutdown(ShutdownHowTo_t howto) override = 0;
 
   /**
     Sends out of band messages over the connection. This function
@@ -571,13 +571,13 @@ public:
   EThread *thread;
 
   /// PRIVATE: The public interface is VIO::reenable()
-  virtual void reenable(VIO *vio) = 0;
+  void reenable(VIO *vio) override = 0;
 
   /// PRIVATE: The public interface is VIO::reenable()
-  virtual void reenable_re(VIO *vio) = 0;
+  void reenable_re(VIO *vio) override = 0;
 
   /// PRIVATE
-  virtual ~NetVConnection() {}
+  ~NetVConnection() override {}
   /**
     PRIVATE: instances of NetVConnection cannot be created directly
     by the state machines. The objects are created by NetProcessor
diff --git a/iocore/net/I_SessionAccept.h b/iocore/net/I_SessionAccept.h
index f3f252f..7e2e25d 100644
--- a/iocore/net/I_SessionAccept.h
+++ b/iocore/net/I_SessionAccept.h
@@ -56,7 +56,7 @@ class SessionAccept : public Continuation
 {
 public:
   SessionAccept(ProxyMutex *amutex) : Continuation(amutex) { SET_HANDLER(&SessionAccept::mainEvent); }
-  ~SessionAccept() {}
+  ~SessionAccept() override {}
   /**
     Accept a new connection on this session.
 
diff --git a/iocore/net/I_UDPConnection.h b/iocore/net/I_UDPConnection.h
index a25b404..f1be035 100644
--- a/iocore/net/I_UDPConnection.h
+++ b/iocore/net/I_UDPConnection.h
@@ -44,7 +44,7 @@ class UDPPacket;
 class UDPConnection : public Continuation
 {
 public:
-  virtual ~UDPConnection(){};
+  ~UDPConnection() override{};
 
   SOCKET getFd();
   void setBinding(struct sockaddr const *);
diff --git a/iocore/net/I_UDPNet.h b/iocore/net/I_UDPNet.h
index 41e3cca..ff89033 100644
--- a/iocore/net/I_UDPNet.h
+++ b/iocore/net/I_UDPNet.h
@@ -44,7 +44,7 @@
 class UDPNetProcessor : public Processor
 {
 public:
-  virtual int start(int n_upd_threads, size_t stacksize) = 0;
+  int start(int n_upd_threads, size_t stacksize) override = 0;
 
   // this function was interanal intially.. this is required for public and
   // interface probably should change.
diff --git a/iocore/net/LuaSNIConfig.h b/iocore/net/LuaSNIConfig.h
index 06330e5..f301a6d 100644
--- a/iocore/net/LuaSNIConfig.h
+++ b/iocore/net/LuaSNIConfig.h
@@ -105,7 +105,7 @@ struct LuaSNIConfig : public TsConfigBase {
     TsConfigString CLIENT_CERT_CONFIG;
     static TsConfigDescriptor VERIFY_NEXT_SERVER_DESCRIPTOR;
     TsConfigInt VERIFY_NEXT_SERVER_CONFIG;
-    ~Item() {}
+    ~Item() override {}
   };
   std::vector<self::Item> items;
   ts::Errata loader(lua_State *s) override;
diff --git a/iocore/net/P_NetAccept.h b/iocore/net/P_NetAccept.h
index fc72c86..151753b 100644
--- a/iocore/net/P_NetAccept.h
+++ b/iocore/net/P_NetAccept.h
@@ -61,7 +61,7 @@ struct NetAcceptAction : public Action, public RefCountObj {
   Server *server;
 
   void
-  cancel(Continuation *cont = nullptr)
+  cancel(Continuation *cont = nullptr) override
   {
     Action::cancel(cont);
     server->close();
@@ -73,7 +73,7 @@ struct NetAcceptAction : public Action, public RefCountObj {
     return Action::operator=(acont);
   }
 
-  ~NetAcceptAction() { Debug("net_accept", "NetAcceptAction dying"); }
+  ~NetAcceptAction() override { Debug("net_accept", "NetAcceptAction dying"); }
 };
 
 //
@@ -111,7 +111,7 @@ struct NetAccept : public Continuation {
   void cancel();
 
   explicit NetAccept(const NetProcessor::AcceptOptions &);
-  virtual ~NetAccept() { action_ = nullptr; }
+  ~NetAccept() override { action_ = nullptr; }
 };
 
 extern Ptr<ProxyMutex> naVecMutex;
diff --git a/iocore/net/P_NetVCTest.h b/iocore/net/P_NetVCTest.h
index af0dc5e..3e73599 100644
--- a/iocore/net/P_NetVCTest.h
+++ b/iocore/net/P_NetVCTest.h
@@ -70,7 +70,7 @@ class NetTestDriver : public Continuation
 {
 public:
   NetTestDriver();
-  ~NetTestDriver();
+  ~NetTestDriver() override;
 
   int errors;
 
@@ -83,7 +83,7 @@ class NetVCTest : public Continuation
 {
 public:
   NetVCTest();
-  ~NetVCTest();
+  ~NetVCTest() override;
   NetVcTestType_t test_cont_type;
 
   int main_handler(int event, void *data);
diff --git a/iocore/net/P_SSLCertLookup.h b/iocore/net/P_SSLCertLookup.h
index 5db6301..65d278a 100644
--- a/iocore/net/P_SSLCertLookup.h
+++ b/iocore/net/P_SSLCertLookup.h
@@ -103,7 +103,7 @@ struct SSLCertLookup : public ConfigInfo {
   SSLCertContext *get(unsigned i) const;
 
   SSLCertLookup();
-  virtual ~SSLCertLookup();
+  ~SSLCertLookup() override;
 };
 
 void ticket_block_free(void *ptr);
diff --git a/iocore/net/P_SSLConfig.h b/iocore/net/P_SSLConfig.h
index b17078d..8e9346d 100644
--- a/iocore/net/P_SSLConfig.h
+++ b/iocore/net/P_SSLConfig.h
@@ -57,7 +57,7 @@ struct SSLConfigParams : public ConfigInfo {
   };
 
   SSLConfigParams();
-  virtual ~SSLConfigParams();
+  ~SSLConfigParams() override;
 
   char *serverCertPathOnly;
   char *serverCertChainFilename;
@@ -169,7 +169,7 @@ struct SSLTicketParams : public ConfigInfo {
   void LoadTicketData(char *ticket_data, int ticket_data_len);
   void cleanup();
 
-  ~SSLTicketParams() { cleanup(); }
+  ~SSLTicketParams() override { cleanup(); }
 };
 
 struct SSLTicketKeyConfig {
diff --git a/iocore/net/P_SSLNetAccept.h b/iocore/net/P_SSLNetAccept.h
index 9cf0a08..ea10c2f 100644
--- a/iocore/net/P_SSLNetAccept.h
+++ b/iocore/net/P_SSLNetAccept.h
@@ -47,9 +47,9 @@
 // Handles accepting connections.
 //
 struct SSLNetAccept : public NetAccept {
-  virtual NetProcessor *getNetProcessor() const;
-  virtual NetAccept *clone() const;
+  NetProcessor *getNetProcessor() const override;
+  NetAccept *clone() const override;
 
   SSLNetAccept(const NetProcessor::AcceptOptions &opt);
-  virtual ~SSLNetAccept();
+  ~SSLNetAccept() override;
 };
diff --git a/iocore/net/P_SSLNetProcessor.h b/iocore/net/P_SSLNetProcessor.h
index d21b0a2..2214e59 100644
--- a/iocore/net/P_SSLNetProcessor.h
+++ b/iocore/net/P_SSLNetProcessor.h
@@ -54,19 +54,19 @@ struct NetAccept;
 //////////////////////////////////////////////////////////////////
 struct SSLNetProcessor : public UnixNetProcessor {
 public:
-  virtual int start(int, size_t stacksize);
+  int start(int, size_t stacksize) override;
 
   void cleanup(void);
 
   SSLNetProcessor();
-  virtual ~SSLNetProcessor();
+  ~SSLNetProcessor() override;
 
   //
   // Private
   //
 
-  virtual NetAccept *createNetAccept(const NetProcessor::AcceptOptions &opt);
-  virtual NetVConnection *allocate_vc(EThread *t);
+  NetAccept *createNetAccept(const NetProcessor::AcceptOptions &opt) override;
+  NetVConnection *allocate_vc(EThread *t) override;
 
   // noncopyable
   SSLNetProcessor(const SSLNetProcessor &) = delete;
diff --git a/iocore/net/P_SSLNetVConnection.h b/iocore/net/P_SSLNetVConnection.h
index 596310c..46117cd 100644
--- a/iocore/net/P_SSLNetVConnection.h
+++ b/iocore/net/P_SSLNetVConnection.h
@@ -137,7 +137,7 @@ public:
   // The constructor is public just to avoid compile errors.//
   ////////////////////////////////////////////////////////////
   SSLNetVConnection();
-  virtual ~SSLNetVConnection() {}
+  ~SSLNetVConnection() override {}
   static int advertise_next_protocol(SSL *ssl, const unsigned char **out, unsigned *outlen, void *);
   static int select_next_protocol(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in,
                                   unsigned inlen, void *);
diff --git a/iocore/net/P_SSLNextProtocolAccept.h b/iocore/net/P_SSLNextProtocolAccept.h
index d3ef462..e9c2c8b 100644
--- a/iocore/net/P_SSLNextProtocolAccept.h
+++ b/iocore/net/P_SSLNextProtocolAccept.h
@@ -34,9 +34,9 @@ class SSLNextProtocolAccept : public SessionAccept
 {
 public:
   SSLNextProtocolAccept(Continuation *, bool);
-  ~SSLNextProtocolAccept();
+  ~SSLNextProtocolAccept() override;
 
-  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *);
+  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *) override;
 
   // Register handler as an endpoint for the specified protocol. Neither
   // handler nor protocol are copied, so the caller must guarantee their
@@ -56,7 +56,7 @@ public:
   SSLNextProtocolAccept &operator=(const SSLNextProtocolAccept &) = delete; // disabled
 
 private:
-  int mainEvent(int event, void *netvc);
+  int mainEvent(int event, void *netvc) override;
 
   MIOBuffer *buffer; // XXX do we really need this?
   Continuation *endpoint;
diff --git a/iocore/net/P_SSLSNI.h b/iocore/net/P_SSLSNI.h
index 4b6cf5c..a7f4463 100644
--- a/iocore/net/P_SSLSNI.h
+++ b/iocore/net/P_SSLSNI.h
@@ -60,7 +60,7 @@ struct SNIConfigParams : public ConfigInfo {
   LuaSNIConfig L_sni;
   NextHopProperty *getPropertyConfig(cchar *servername) const;
   SNIConfigParams();
-  virtual ~SNIConfigParams();
+  ~SNIConfigParams() override;
   void cleanup();
   int Initialize();
   void loadSNIConfig();
diff --git a/iocore/net/P_UDPConnection.h b/iocore/net/P_UDPConnection.h
index 2c881c9..011ccae 100644
--- a/iocore/net/P_UDPConnection.h
+++ b/iocore/net/P_UDPConnection.h
@@ -36,7 +36,7 @@ class UDPConnectionInternal : public UDPConnection
 {
 public:
   UDPConnectionInternal();
-  virtual ~UDPConnectionInternal();
+  ~UDPConnectionInternal() override;
 
   Continuation *continuation;
   int recvActive; // interested in receiving
diff --git a/iocore/net/P_UDPIOEvent.h b/iocore/net/P_UDPIOEvent.h
index c65cf9a..b89c9c7 100644
--- a/iocore/net/P_UDPIOEvent.h
+++ b/iocore/net/P_UDPIOEvent.h
@@ -29,7 +29,7 @@ class UDPIOEvent : public Event
 {
 public:
   UDPIOEvent() : fd(-1), err(0), m(nullptr), handle(nullptr), b(nullptr), bytesTransferred(0){};
-  ~UDPIOEvent(){};
+  ~UDPIOEvent() override{};
 
   void
   setInfo(int fd_, const Ptr<IOBufferBlock> &b_, int bytesTransferred_, int errno_)
diff --git a/iocore/net/P_UDPNet.h b/iocore/net/P_UDPNet.h
index 6449c6f..1c8131c 100644
--- a/iocore/net/P_UDPNet.h
+++ b/iocore/net/P_UDPNet.h
@@ -43,7 +43,7 @@ static inline PollCont *get_UDPPollCont(EThread *);
 class UDPNetHandler;
 
 struct UDPNetProcessorInternal : public UDPNetProcessor {
-  virtual int start(int n_udp_threads, size_t stacksize);
+  int start(int n_udp_threads, size_t stacksize) override;
   void udp_read_from_net(UDPNetHandler *nh, UDPConnection *uc);
   int udp_callback(UDPNetHandler *nh, UDPConnection *uc, EThread *thread);
 
diff --git a/iocore/net/P_UDPPacket.h b/iocore/net/P_UDPPacket.h
index 545b16e..0b6363a 100644
--- a/iocore/net/P_UDPPacket.h
+++ b/iocore/net/P_UDPPacket.h
@@ -36,11 +36,11 @@ class UDPPacketInternal : public UDPPacket
 {
 public:
   UDPPacketInternal();
-  virtual ~UDPPacketInternal();
+  ~UDPPacketInternal() override;
 
   void append_block_internal(IOBufferBlock *block);
 
-  virtual void free();
+  void free() override;
 
   SLINK(UDPPacketInternal, alink); // atomic link
   // packet scheduling stuff: keep it a doubly linked list
diff --git a/iocore/net/P_UnixNet.h b/iocore/net/P_UnixNet.h
index 083117c..400061b 100644
--- a/iocore/net/P_UnixNet.h
+++ b/iocore/net/P_UnixNet.h
@@ -161,7 +161,7 @@ struct PollCont : public Continuation {
 
   PollCont(Ptr<ProxyMutex> &m, int pt = net_config_poll_timeout);
   PollCont(Ptr<ProxyMutex> &m, NetHandler *nh, int pt = net_config_poll_timeout);
-  ~PollCont();
+  ~PollCont() override;
   int pollEvent(int, Event *);
   void do_poll(ink_hrtime timeout);
 };
@@ -284,7 +284,7 @@ public:
   static std::bitset<std::numeric_limits<unsigned int>::digits> active_thread_types;
 
   int mainNetEvent(int event, Event *data);
-  int waitForActivity(ink_hrtime timeout);
+  int waitForActivity(ink_hrtime timeout) override;
   void process_enabled_list();
   void process_ready_list();
   void manage_keep_alive_queue();
@@ -338,7 +338,7 @@ public:
   void stopCop(UnixNetVConnection *netvc);
 
   // Signal the epoll_wait to terminate.
-  void signalActivity();
+  void signalActivity() override;
 
   /**
     Release a netvc and free it.
diff --git a/iocore/net/P_UnixNetVConnection.h b/iocore/net/P_UnixNetVConnection.h
index 7a8884d..490e143 100644
--- a/iocore/net/P_UnixNetVConnection.h
+++ b/iocore/net/P_UnixNetVConnection.h
@@ -165,7 +165,7 @@ public:
 
   SOCKET get_socket() override;
 
-  virtual ~UnixNetVConnection();
+  ~UnixNetVConnection() override;
 
   /////////////////////////////////////////////////////////////////
   // instances of UnixNetVConnection should be allocated         //
diff --git a/iocore/net/P_UnixUDPConnection.h b/iocore/net/P_UnixUDPConnection.h
index 984ad32..668f9f3 100644
--- a/iocore/net/P_UnixUDPConnection.h
+++ b/iocore/net/P_UnixUDPConnection.h
@@ -52,11 +52,11 @@ public:
   EventIO ep;
 
   UnixUDPConnection(int the_fd);
-  virtual ~UnixUDPConnection();
+  ~UnixUDPConnection() override;
 
 private:
   int m_errno;
-  virtual void UDPConnection_is_abstract(){};
+  void UDPConnection_is_abstract() override{};
 };
 
 TS_INLINE
diff --git a/iocore/utils/I_OneWayMultiTunnel.h b/iocore/utils/I_OneWayMultiTunnel.h
index c3df980..9351851 100644
--- a/iocore/utils/I_OneWayMultiTunnel.h
+++ b/iocore/utils/I_OneWayMultiTunnel.h
@@ -138,8 +138,8 @@ struct OneWayMultiTunnel : public OneWayTunnel {
   //
   int startEvent(int event, void *data);
 
-  virtual void reenable_all();
-  virtual void close_target_vio(int result, VIO *vio = nullptr);
+  void reenable_all() override;
+  void close_target_vio(int result, VIO *vio = nullptr) override;
 
   int n_vioTargets                      = 0;
   bool source_read_previously_completed = false;
diff --git a/iocore/utils/I_OneWayTunnel.h b/iocore/utils/I_OneWayTunnel.h
index 4e368d6..448737c 100644
--- a/iocore/utils/I_OneWayTunnel.h
+++ b/iocore/utils/I_OneWayTunnel.h
@@ -86,7 +86,7 @@ struct OneWayTunnel : public Continuation {
 
   static void SetupTwoWayTunnel(OneWayTunnel *east, OneWayTunnel *west);
   OneWayTunnel();
-  virtual ~OneWayTunnel();
+  ~OneWayTunnel() override;
 
   // Use One of the following init functions to start the tunnel.
   /**
diff --git a/lib/cppapi/include/atscppapi/Async.h b/lib/cppapi/include/atscppapi/Async.h
index 8c87f2a..7fc9ad7 100644
--- a/lib/cppapi/include/atscppapi/Async.h
+++ b/lib/cppapi/include/atscppapi/Async.h
@@ -122,7 +122,7 @@ class AsyncDispatchController : public AsyncDispatchControllerBase
 {
 public:
   bool
-  dispatch()
+  dispatch() override
   {
     bool ret = false;
     std::lock_guard<Mutex> scopedLock(*dispatch_mutex_);
@@ -134,14 +134,14 @@ public:
   }
 
   void
-  disable()
+  disable() override
   {
     std::lock_guard<Mutex> scopedLock(*dispatch_mutex_);
     event_receiver_ = nullptr;
   }
 
   bool
-  isEnabled()
+  isEnabled() override
   {
     return (event_receiver_ != nullptr);
   }
@@ -158,7 +158,7 @@ public:
   {
   }
 
-  virtual ~AsyncDispatchController() {}
+  ~AsyncDispatchController() override {}
 
 public:
   AsyncEventReceiverType *event_receiver_;
diff --git a/lib/cppapi/include/atscppapi/AsyncHttpFetch.h b/lib/cppapi/include/atscppapi/AsyncHttpFetch.h
index ac7baa7..6a74997 100644
--- a/lib/cppapi/include/atscppapi/AsyncHttpFetch.h
+++ b/lib/cppapi/include/atscppapi/AsyncHttpFetch.h
@@ -121,10 +121,10 @@ public:
   /**
    * Starts a HTTP fetch of the Request contained.
    */
-  virtual void run();
+  void run() override;
 
 protected:
-  virtual ~AsyncHttpFetch();
+  ~AsyncHttpFetch() override;
 
 private:
   AsyncHttpFetchState *state_;
diff --git a/lib/cppapi/include/atscppapi/AsyncTimer.h b/lib/cppapi/include/atscppapi/AsyncTimer.h
index fd73184..c8308de 100644
--- a/lib/cppapi/include/atscppapi/AsyncTimer.h
+++ b/lib/cppapi/include/atscppapi/AsyncTimer.h
@@ -63,14 +63,14 @@ public:
    */
   AsyncTimer(Type type, int period_in_ms, int initial_period_in_ms = 0);
 
-  virtual ~AsyncTimer();
+  ~AsyncTimer() override;
 
   /**
    * Starts the timer.
    */
-  void run();
+  void run() override;
 
-  void cancel();
+  void cancel() override;
 
 private:
   AsyncTimerState *state_;
diff --git a/lib/cppapi/include/atscppapi/GlobalPlugin.h b/lib/cppapi/include/atscppapi/GlobalPlugin.h
index 3c3ebca..412a3c7 100644
--- a/lib/cppapi/include/atscppapi/GlobalPlugin.h
+++ b/lib/cppapi/include/atscppapi/GlobalPlugin.h
@@ -69,7 +69,7 @@ public:
    * @see Plugin
    */
   void registerHook(Plugin::HookType);
-  virtual ~GlobalPlugin();
+  ~GlobalPlugin() override;
 
 protected:
   /**
diff --git a/lib/cppapi/include/atscppapi/GzipDeflateTransformation.h b/lib/cppapi/include/atscppapi/GzipDeflateTransformation.h
index acf67e3..0833c77 100644
--- a/lib/cppapi/include/atscppapi/GzipDeflateTransformation.h
+++ b/lib/cppapi/include/atscppapi/GzipDeflateTransformation.h
@@ -78,7 +78,7 @@ namespace transformations
      */
     void handleInputComplete() override;
 
-    virtual ~GzipDeflateTransformation();
+    ~GzipDeflateTransformation() override;
 
   private:
     GzipDeflateTransformationState *state_; /** Internal state for Gzip Deflate Transformations */
diff --git a/lib/cppapi/include/atscppapi/GzipInflateTransformation.h b/lib/cppapi/include/atscppapi/GzipInflateTransformation.h
index f2fc55d..9e01793 100644
--- a/lib/cppapi/include/atscppapi/GzipInflateTransformation.h
+++ b/lib/cppapi/include/atscppapi/GzipInflateTransformation.h
@@ -79,7 +79,7 @@ namespace transformations
      */
     void handleInputComplete() override;
 
-    virtual ~GzipInflateTransformation();
+    ~GzipInflateTransformation() override;
 
   private:
     GzipInflateTransformationState *state_; /** Internal state for Gzip Deflate Transformations */
diff --git a/lib/cppapi/include/atscppapi/InterceptPlugin.h b/lib/cppapi/include/atscppapi/InterceptPlugin.h
index f7b1ed5..54d9fe3 100644
--- a/lib/cppapi/include/atscppapi/InterceptPlugin.h
+++ b/lib/cppapi/include/atscppapi/InterceptPlugin.h
@@ -68,7 +68,7 @@ public:
   /** Should be called only after request header has completely been consumed */
   Headers &getRequestHeaders();
 
-  virtual ~InterceptPlugin();
+  ~InterceptPlugin() override;
 
   struct State; /** Internal use only */
 
diff --git a/lib/cppapi/include/atscppapi/TransactionPlugin.h b/lib/cppapi/include/atscppapi/TransactionPlugin.h
index 22882b0..f863ce6 100644
--- a/lib/cppapi/include/atscppapi/TransactionPlugin.h
+++ b/lib/cppapi/include/atscppapi/TransactionPlugin.h
@@ -98,7 +98,7 @@ public:
    * @see Plugin
    */
   void registerHook(Plugin::HookType hook_type);
-  virtual ~TransactionPlugin();
+  ~TransactionPlugin() override;
 
   bool isWebsocket() const;
 
diff --git a/lib/cppapi/include/atscppapi/TransformationPlugin.h b/lib/cppapi/include/atscppapi/TransformationPlugin.h
index 26bdb9a..0dc4d29 100644
--- a/lib/cppapi/include/atscppapi/TransformationPlugin.h
+++ b/lib/cppapi/include/atscppapi/TransformationPlugin.h
@@ -111,7 +111,7 @@ public:
    */
   virtual void handleInputComplete() = 0;
 
-  virtual ~TransformationPlugin(); /**< Destructor for a TransformationPlugin */
+  ~TransformationPlugin() override; /**< Destructor for a TransformationPlugin */
 protected:
   /**
    * This method is how a TransformationPlugin will produce output for the downstream
diff --git a/lib/ts/CryptoHash.h b/lib/ts/CryptoHash.h
index 6b72489..320a4bb 100644
--- a/lib/ts/CryptoHash.h
+++ b/lib/ts/CryptoHash.h
@@ -145,9 +145,9 @@ class CryptoContext : public CryptoContextBase
 public:
   CryptoContext();
   /// Update the hash with @a data of @a length bytes.
-  virtual bool update(void const *data, int length);
+  bool update(void const *data, int length) override;
   /// Finalize and extract the @a hash.
-  virtual bool finalize(CryptoHash &hash);
+  bool finalize(CryptoHash &hash) override;
 
   enum HashType {
     UNSPECIFIED,
diff --git a/lib/ts/HashFNV.h b/lib/ts/HashFNV.h
index b8aaecf..e285869 100644
--- a/lib/ts/HashFNV.h
+++ b/lib/ts/HashFNV.h
@@ -35,14 +35,14 @@ struct ATSHash32FNV1a : ATSHash32 {
 
   template <typename Transform> void update(const void *data, size_t len, Transform xfrm);
   void
-  update(const void *data, size_t len)
+  update(const void *data, size_t len) override
   {
     update(data, len, ATSHash::nullxfrm());
   }
 
-  void final(void);
-  uint32_t get(void) const;
-  void clear(void);
+  void final(void) override;
+  uint32_t get(void) const override;
+  void clear(void) override;
 
 private:
   uint32_t hval;
@@ -66,14 +66,14 @@ struct ATSHash64FNV1a : ATSHash64 {
 
   template <typename Transform> void update(const void *data, size_t len, Transform xfrm);
   void
-  update(const void *data, size_t len)
+  update(const void *data, size_t len) override
   {
     update(data, len, ATSHash::nullxfrm());
   }
 
-  void final(void);
-  uint64_t get(void) const;
-  void clear(void);
+  void final(void) override;
+  uint64_t get(void) const override;
+  void clear(void) override;
 
 private:
   uint64_t hval;
diff --git a/lib/ts/HashMD5.h b/lib/ts/HashMD5.h
index eb0470b..8c1e6b4 100644
--- a/lib/ts/HashMD5.h
+++ b/lib/ts/HashMD5.h
@@ -26,12 +26,12 @@
 
 struct ATSHashMD5 : ATSHash {
   ATSHashMD5(void);
-  void update(const void *data, size_t len);
-  void final(void);
-  const void *get(void) const;
-  size_t size(void) const;
-  void clear(void);
-  ~ATSHashMD5();
+  void update(const void *data, size_t len) override;
+  void final(void) override;
+  const void *get(void) const override;
+  size_t size(void) const override;
+  void clear(void) override;
+  ~ATSHashMD5() override;
 
 private:
   EVP_MD_CTX *ctx;
diff --git a/lib/ts/HashSip.h b/lib/ts/HashSip.h
index 8eb45d5..eeb7c08 100644
--- a/lib/ts/HashSip.h
+++ b/lib/ts/HashSip.h
@@ -35,10 +35,10 @@ struct ATSHash64Sip24 : ATSHash64 {
   ATSHash64Sip24(void);
   ATSHash64Sip24(const unsigned char key[16]);
   ATSHash64Sip24(std::uint64_t key0, std::uint64_t key1);
-  void update(const void *data, std::size_t len);
-  void final(void);
-  std::uint64_t get(void) const;
-  void clear(void);
+  void update(const void *data, std::size_t len) override;
+  void final(void) override;
+  std::uint64_t get(void) const override;
+  void clear(void) override;
 
 private:
   unsigned char block_buffer[8] = {0};
diff --git a/lib/ts/INK_MD5.h b/lib/ts/INK_MD5.h
index 5bb3c58..8663788 100644
--- a/lib/ts/INK_MD5.h
+++ b/lib/ts/INK_MD5.h
@@ -35,9 +35,9 @@ protected:
 public:
   MD5Context();
   /// Update the hash with @a data of @a length bytes.
-  virtual bool update(void const *data, int length);
+  bool update(void const *data, int length) override;
   /// Finalize and extract the @a hash.
-  virtual bool finalize(CryptoHash &hash);
+  bool finalize(CryptoHash &hash) override;
 };
 
 typedef CryptoHash INK_MD5;
diff --git a/lib/ts/MMH.h b/lib/ts/MMH.h
index c543d3b..f387781 100644
--- a/lib/ts/MMH.h
+++ b/lib/ts/MMH.h
@@ -56,9 +56,9 @@ protected:
 public:
   MMHContext();
   /// Update the hash with @a data of @a length bytes.
-  virtual bool update(void const *data, int length);
+  bool update(void const *data, int length) override;
   /// Finalize and extract the @a hash.
-  virtual bool finalize(CryptoHash &hash);
+  bool finalize(CryptoHash &hash) override;
 #if 0
   MMH & loadFromBuffer(char *MMH_buf)
   {
diff --git a/lib/ts/Ptr.h b/lib/ts/Ptr.h
index 66cb61c..da358b6 100644
--- a/lib/ts/Ptr.h
+++ b/lib/ts/Ptr.h
@@ -51,7 +51,7 @@ public:
     return;
   }
 
-  virtual ~RefCountObj() {}
+  ~RefCountObj() override {}
   RefCountObj &
   operator=(const RefCountObj &s)
   {
diff --git a/lib/ts/SHA256.h b/lib/ts/SHA256.h
index ba2e3c8..d4f2a14 100644
--- a/lib/ts/SHA256.h
+++ b/lib/ts/SHA256.h
@@ -36,14 +36,14 @@ protected:
 public:
   SHA256Context() { SHA256_Init(&_ctx); }
   /// Update the hash with @a data of @a length bytes.
-  virtual bool
-  update(void const *data, int length)
+  bool
+  update(void const *data, int length) override
   {
     return SHA256_Update(&_ctx, data, length);
   }
   /// Finalize and extract the @a hash.
-  virtual bool
-  finalize(CryptoHash &hash)
+  bool
+  finalize(CryptoHash &hash) override
   {
     return SHA256_Final(hash.u8, &_ctx);
   }
diff --git a/lib/ts/unit-tests/test_IpMap.cc b/lib/ts/unit-tests/test_IpMap.cc
index accb945..7a06ede 100644
--- a/lib/ts/unit-tests/test_IpMap.cc
+++ b/lib/ts/unit-tests/test_IpMap.cc
@@ -53,13 +53,13 @@ class MapMarkedAt : public Catch::MatcherBase<IpMap>
 public:
   MapMarkedAt(IpEndpoint const &addr) : _addr(addr) {}
 
-  virtual bool
+  bool
   match(IpMap const &map) const override
   {
     return map.contains(&_addr);
   }
 
-  virtual std::string
+  std::string
   describe() const override
   {
     std::ostringstream ss;
@@ -84,14 +84,14 @@ class MapMarkedWith : public Catch::MatcherBase<IpMap>
 public:
   MapMarkedWith(IpEndpoint const &addr, void *mark) : _addr(addr), _mark(mark) {}
 
-  virtual bool
+  bool
   match(IpMap const &map) const override
   {
     void *mark = nullptr;
     return (_found_p = map.contains(&_addr, &mark)) && mark == _mark;
   }
 
-  virtual std::string
+  std::string
   describe() const override
   {
     std::ostringstream ss;
diff --git a/lib/tsconfig/Errata.h b/lib/tsconfig/Errata.h
index 278697a..15b2373 100644
--- a/lib/tsconfig/Errata.h
+++ b/lib/tsconfig/Errata.h
@@ -311,7 +311,7 @@ public:
         /// Constructor.
         SinkFunctionWrapper(SinkHandlerFunction f) : m_f(f) { }
         /// Operator to invoke the function.
-        virtual void operator() (Errata const& e) const { m_f(e); }
+        void operator() (Errata const& e) const override { m_f(e); }
         SinkHandlerFunction m_f; ///< Client supplied handler.
     };
 
diff --git a/plugins/esi/fetcher/HttpDataFetcherImpl.h b/plugins/esi/fetcher/HttpDataFetcherImpl.h
index c1235c3..45bfbd4 100644
--- a/plugins/esi/fetcher/HttpDataFetcherImpl.h
+++ b/plugins/esi/fetcher/HttpDataFetcherImpl.h
@@ -42,7 +42,7 @@ public:
 
   void useHeaders(const EsiLib::HttpHeaderList &headers);
 
-  bool addFetchRequest(const std::string &url, FetchedDataProcessor *callback_obj = nullptr);
+  bool addFetchRequest(const std::string &url, FetchedDataProcessor *callback_obj = nullptr) override;
 
   bool handleFetchEvent(TSEvent event, void *edata);
 
@@ -59,10 +59,10 @@ public:
     return (_n_pending_requests == 0);
   };
 
-  DataStatus getRequestStatus(const std::string &url) const;
+  DataStatus getRequestStatus(const std::string &url) const override;
 
   int
-  getNumPendingRequests() const
+  getNumPendingRequests() const override
   {
     return _n_pending_requests;
   };
@@ -86,7 +86,7 @@ public:
   bool getData(const std::string &url, ResponseData &resp_data) const;
 
   bool
-  getContent(const std::string &url, const char *&content, int &content_len) const
+  getContent(const std::string &url, const char *&content, int &content_len) const override
   {
     ResponseData resp;
     if (getData(url, resp)) {
@@ -99,7 +99,7 @@ public:
 
   void clear();
 
-  ~HttpDataFetcherImpl();
+  ~HttpDataFetcherImpl() override;
 
 private:
   TSCont _contp;
diff --git a/plugins/esi/lib/EsiGunzip.h b/plugins/esi/lib/EsiGunzip.h
index c3d5e93..b01cd9f 100644
--- a/plugins/esi/lib/EsiGunzip.h
+++ b/plugins/esi/lib/EsiGunzip.h
@@ -33,7 +33,7 @@ class EsiGunzip : private EsiLib::ComponentBase
 public:
   EsiGunzip(const char *debug_tag, EsiLib::ComponentBase::Debug debug_func, EsiLib::ComponentBase::Error error_func);
 
-  virtual ~EsiGunzip();
+  ~EsiGunzip() override;
 
   bool stream_decode(const char *data, int data_len, std::string &udata);
 
diff --git a/plugins/esi/lib/EsiGzip.h b/plugins/esi/lib/EsiGzip.h
index 76caa03..0c6bad2 100644
--- a/plugins/esi/lib/EsiGzip.h
+++ b/plugins/esi/lib/EsiGzip.h
@@ -33,7 +33,7 @@ class EsiGzip : private EsiLib::ComponentBase
 public:
   EsiGzip(const char *debug_tag, EsiLib::ComponentBase::Debug debug_func, EsiLib::ComponentBase::Error error_func);
 
-  virtual ~EsiGzip();
+  ~EsiGzip() override;
 
   bool stream_encode(const char *data, int data_len, std::string &cdata);
 
diff --git a/plugins/esi/lib/Expression.h b/plugins/esi/lib/Expression.h
index 55221cc..aa49738 100644
--- a/plugins/esi/lib/Expression.h
+++ b/plugins/esi/lib/Expression.h
@@ -58,7 +58,7 @@ public:
     return evaluate(expr.data(), expr.size());
   }
 
-  virtual ~Expression(){};
+  ~Expression() override{};
 
 private:
   static const std::string EMPTY_STRING;
diff --git a/plugins/esi/lib/FailureInfo.h b/plugins/esi/lib/FailureInfo.h
index e5b80e7..ec3cac5 100644
--- a/plugins/esi/lib/FailureInfo.h
+++ b/plugins/esi/lib/FailureInfo.h
@@ -63,7 +63,7 @@ public:
     _debugLog(_debug_tag, "FailureInfo Ctor:inserting URL object into the statistics map [FailureInfo object]%p", this);
   };
 
-  ~FailureInfo() {}
+  ~FailureInfo() override {}
   /* Fills the statistics vector depending
    * upon the position of the window marker
    */
diff --git a/plugins/esi/lib/Variables.h b/plugins/esi/lib/Variables.h
index 1cbfa18..6d93c70 100644
--- a/plugins/esi/lib/Variables.h
+++ b/plugins/esi/lib/Variables.h
@@ -97,7 +97,7 @@ public:
 
   void clear();
 
-  virtual ~Variables() { _releaseCookieJar(); };
+  ~Variables() override { _releaseCookieJar(); };
 
   // noncopyable
   Variables(const Variables &) = delete;            // non-copyable
diff --git a/plugins/experimental/cachekey/configs.h b/plugins/experimental/cachekey/configs.h
index f959e9c..db54da3 100644
--- a/plugins/experimental/cachekey/configs.h
+++ b/plugins/experimental/cachekey/configs.h
@@ -85,10 +85,10 @@ protected:
 class ConfigQuery : public ConfigElements
 {
 public:
-  bool finalize();
+  bool finalize() override;
 
 private:
-  const String &name() const;
+  const String &name() const override;
   static const String _NAME;
 };
 
@@ -98,12 +98,12 @@ private:
 class ConfigHeaders : public ConfigElements
 {
 public:
-  bool finalize();
+  bool finalize() override;
 
   const StringSet &getInclude() const;
 
 private:
-  const String &name() const;
+  const String &name() const override;
   static const String _NAME;
 };
 
@@ -113,10 +113,10 @@ private:
 class ConfigCookies : public ConfigElements
 {
 public:
-  bool finalize();
+  bool finalize() override;
 
 private:
-  const String &name() const;
+  const String &name() const override;
   static const String _NAME;
 };
 
diff --git a/plugins/experimental/cachekey/pattern.h b/plugins/experimental/cachekey/pattern.h
index 4f1c78b..302d20a 100644
--- a/plugins/experimental/cachekey/pattern.h
+++ b/plugins/experimental/cachekey/pattern.h
@@ -106,8 +106,8 @@ public:
    * @param subject subject string
    * @return return false if any of the patterns matches, true otherwise.
    */
-  virtual bool
-  match(const String &subject) const
+  bool
+  match(const String &subject) const override
   {
     return !MultiPattern::match(subject);
   }
diff --git a/plugins/experimental/geoip_acl/acl.h b/plugins/experimental/geoip_acl/acl.h
index 458c770..23eb5b8 100644
--- a/plugins/experimental/geoip_acl/acl.h
+++ b/plugins/experimental/geoip_acl/acl.h
@@ -137,10 +137,10 @@ class CountryAcl : public Acl
 {
 public:
   CountryAcl() : _regexes(nullptr) { memset(_iso_country_codes, 0, sizeof(_iso_country_codes)); }
-  void read_regex(const char *fn, int &tokens);
-  int process_args(int argc, char *argv[]);
-  bool eval(TSRemapRequestInfo *rri, TSHttpTxn txnp) const;
-  void add_token(const std::string &str);
+  void read_regex(const char *fn, int &tokens) override;
+  int process_args(int argc, char *argv[]) override;
+  bool eval(TSRemapRequestInfo *rri, TSHttpTxn txnp) const override;
+  void add_token(const std::string &str) override;
 
 private:
   bool _iso_country_codes[NUM_ISO_CODES];
diff --git a/plugins/experimental/inliner/inliner-handler.h b/plugins/experimental/inliner/inliner-handler.h
index 83f6aae..4839d90 100644
--- a/plugins/experimental/inliner/inliner-handler.h
+++ b/plugins/experimental/inliner/inliner-handler.h
@@ -40,7 +40,7 @@ namespace inliner
     size_t counter_;
     bool abort_;
 
-    ~Handler()
+    ~Handler() override
     {
       assert(reader_ != nullptr);
       if (!abort_) {
@@ -59,8 +59,8 @@ namespace inliner
 
     void parse(void);
 
-    size_t bypass(const size_t, const size_t);
-    void handleImage(const Attributes &);
+    size_t bypass(const size_t, const size_t) override;
+    void handleImage(const Attributes &) override;
 
     std::string generateId(void);
 
diff --git a/plugins/experimental/inliner/ts.h b/plugins/experimental/inliner/ts.h
index a58c870..2c35c33 100644
--- a/plugins/experimental/inliner/ts.h
+++ b/plugins/experimental/inliner/ts.h
@@ -234,14 +234,14 @@ namespace io
   struct StringNode : Node {
     std::string string_;
     explicit StringNode(std::string &&s) : string_(std::move(s)) {}
-    Node::Result process(const TSIOBuffer);
+    Node::Result process(const TSIOBuffer) override;
   };
 
   struct BufferNode : Node {
     const TSIOBuffer buffer_;
     const TSIOBufferReader reader_;
 
-    ~BufferNode()
+    ~BufferNode() override
     {
       assert(reader_ != nullptr);
       TSIOBufferReaderFree(reader_);
@@ -263,7 +263,7 @@ namespace io
     BufferNode &operator<<(const ReaderOffset &);
     BufferNode &operator<<(const char *const);
     BufferNode &operator<<(const std::string &);
-    Node::Result process(const TSIOBuffer);
+    Node::Result process(const TSIOBuffer) override;
   };
 
   struct Data : Node {
@@ -276,7 +276,7 @@ namespace io
     Data(const Data &) = delete;
     Data &operator=(const Data &) = delete;
 
-    Node::Result process(const TSIOBuffer);
+    Node::Result process(const TSIOBuffer) override;
   };
 
   struct Sink {
diff --git a/plugins/experimental/server_push_preload/server_push_preload.cc b/plugins/experimental/server_push_preload/server_push_preload.cc
index 3936de5..a0fb767 100644
--- a/plugins/experimental/server_push_preload/server_push_preload.cc
+++ b/plugins/experimental/server_push_preload/server_push_preload.cc
@@ -53,8 +53,8 @@ public:
     LinkServerPushPlugin::registerHook(HOOK_SEND_RESPONSE_HEADERS);
   }
 
-  virtual void
-  handleSendResponseHeaders(Transaction &transaction)
+  void
+  handleSendResponseHeaders(Transaction &transaction) override
   {
     serverPush(transaction);
     transaction.resume();
diff --git a/plugins/header_rewrite/condition.h b/plugins/header_rewrite/condition.h
index f5e093b..ebafab4 100644
--- a/plugins/header_rewrite/condition.h
+++ b/plugins/header_rewrite/condition.h
@@ -113,7 +113,7 @@ public:
   }
 
   // Virtual methods, has to be implemented by each conditional;
-  virtual void initialize(Parser &p);
+  void initialize(Parser &p) override;
   virtual void append_value(std::string &s, const Resources &res) = 0;
 
 protected:
diff --git a/plugins/header_rewrite/conditions.h b/plugins/header_rewrite/conditions.h
index a840a8e..916085e 100644
--- a/plugins/header_rewrite/conditions.h
+++ b/plugins/header_rewrite/conditions.h
@@ -43,14 +43,14 @@ class ConditionTrue : public Condition
 public:
   ConditionTrue() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionTrue"); }
   void
-  append_value(std::string &s, const Resources & /* res ATS_UNUSED */)
+  append_value(std::string &s, const Resources & /* res ATS_UNUSED */) override
   {
     s += "TRUE";
   }
 
 protected:
   bool
-  eval(const Resources & /* res ATS_UNUSED */)
+  eval(const Resources & /* res ATS_UNUSED */) override
   {
     TSDebug(PLUGIN_NAME, "Evaluating TRUE()");
     return true;
@@ -66,14 +66,14 @@ class ConditionFalse : public Condition
 public:
   ConditionFalse() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionFalse"); }
   void
-  append_value(std::string &s, const Resources & /* res ATS_UNUSED */)
+  append_value(std::string &s, const Resources & /* res ATS_UNUSED */) override
   {
     s += "FALSE";
   }
 
 protected:
   bool
-  eval(const Resources & /* res ATS_UNUSED */)
+  eval(const Resources & /* res ATS_UNUSED */) override
   {
     TSDebug(PLUGIN_NAME, "Evaluating FALSE()");
     return false;
@@ -90,12 +90,12 @@ class ConditionStatus : public Condition
 
 public:
   ConditionStatus() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionStatus"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
-  void initialize_hooks(); // Return status only valid in certain hooks
+  bool eval(const Resources &res) override;
+  void initialize_hooks() override; // Return status only valid in certain hooks
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionStatus);
@@ -108,11 +108,11 @@ class ConditionMethod : public Condition
 
 public:
   ConditionMethod() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionMethod"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionMethod);
@@ -125,11 +125,11 @@ class ConditionRandom : public Condition
 
 public:
   ConditionRandom() : _seed(0), _max(0) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionRandom"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionRandom);
@@ -143,11 +143,11 @@ class ConditionAccess : public Condition
 {
 public:
   ConditionAccess() : _next(0), _last(false) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionAccess"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionAccess);
@@ -163,11 +163,11 @@ class ConditionCookie : public Condition
 
 public:
   ConditionCookie() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionCookie"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionCookie);
@@ -235,11 +235,11 @@ public:
     TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionHeader, client %d", client);
   }
 
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionHeader);
@@ -254,11 +254,11 @@ class ConditionPath : public Condition
 
 public:
   explicit ConditionPath() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionPath"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionPath);
@@ -271,11 +271,11 @@ class ConditionQuery : public Condition
 
 public:
   explicit ConditionQuery() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionQuery"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionQuery);
@@ -294,12 +294,12 @@ public:
     TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionUrl");
   }
 
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionUrl);
@@ -322,7 +322,7 @@ public:
     TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionDBM");
   }
 
-  ~ConditionDBM()
+  ~ConditionDBM() override
   {
     // if (_dbm) {
     //   mdbm_close(_dbm);
@@ -330,11 +330,11 @@ public:
     // }
   }
 
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionDBM);
@@ -350,12 +350,12 @@ class ConditionInternalTxn : public Condition
 
 public:
   void
-  append_value(std::string & /* s ATS_UNUSED */, const Resources & /* res ATS_UNUSED */)
+  append_value(std::string & /* s ATS_UNUSED */, const Resources & /* res ATS_UNUSED */) override
   {
   }
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 };
 
 class ConditionIp : public Condition
@@ -364,12 +364,12 @@ class ConditionIp : public Condition
 
 public:
   explicit ConditionIp() : _ip_qual(IP_QUAL_CLIENT) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionIp"); };
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionIp);
@@ -381,11 +381,11 @@ class ConditionClientIp : public Condition
   typedef Matchers<std::string> MatcherType;
 
 public:
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 };
 
 class ConditionIncomingPort : public Condition
@@ -394,11 +394,11 @@ class ConditionIncomingPort : public Condition
 
 public:
   ConditionIncomingPort() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionIncomingPort"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionIncomingPort);
@@ -411,11 +411,11 @@ class ConditionTransactCount : public Condition
 
 public:
   ConditionTransactCount() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionTransactCount"); }
-  void initialize(Parser &p);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionTransactCount);
@@ -428,12 +428,12 @@ class ConditionNow : public Condition
 
 public:
   explicit ConditionNow() : _now_qual(NOW_QUAL_EPOCH) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionNow"); }
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionNow);
@@ -451,9 +451,9 @@ public:
     TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionGeo");
   }
 
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
 
   // Make sure we know if the type is an int-type or a string.
   bool
@@ -469,7 +469,7 @@ public:
   }
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionGeo);
@@ -485,12 +485,12 @@ class ConditionId : public Condition
 {
 public:
   explicit ConditionId() : _id_qual(ID_QUAL_UNIQUE) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for ConditionId"); };
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(ConditionId);
@@ -513,12 +513,12 @@ public:
   ConditionCidr(self &) = delete;
   self &operator=(self &) = delete;
 
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   void _create_masks();
@@ -540,15 +540,15 @@ public:
   ConditionInbound(self &) = delete;
   self &operator=(self &) = delete;
 
-  void initialize(Parser &p);
-  void set_qualifier(const std::string &q);
-  void append_value(std::string &s, const Resources &res);
+  void initialize(Parser &p) override;
+  void set_qualifier(const std::string &q) override;
+  void append_value(std::string &s, const Resources &res) override;
   static void append_value(std::string &s, const Resources &res, NetworkSessionQualifiers qual);
 
   static constexpr const char *TAG = "INBOUND";
 
 protected:
-  bool eval(const Resources &res);
+  bool eval(const Resources &res) override;
 
 private:
   NetworkSessionQualifiers _net_qual = NET_QUAL_STACK;
diff --git a/plugins/header_rewrite/operator.h b/plugins/header_rewrite/operator.h
index fab29d5..5754b61 100644
--- a/plugins/header_rewrite/operator.h
+++ b/plugins/header_rewrite/operator.h
@@ -45,7 +45,7 @@ class Operator : public Statement
 public:
   Operator() : _mods(OPER_NONE) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for Operator"); }
   OperModifiers get_oper_modifiers() const;
-  virtual void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
   void
   do_exec(const Resources &res) const
@@ -73,7 +73,7 @@ class OperatorHeaders : public Operator
 {
 public:
   OperatorHeaders() : _header("") { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorHeaders"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
   std::string _header;
@@ -90,7 +90,7 @@ class OperatorCookies : public Operator
 {
 public:
   OperatorCookies() : _cookie("") { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorCookies"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
   std::string _cookie;
diff --git a/plugins/header_rewrite/operators.h b/plugins/header_rewrite/operators.h
index 931ea02..c3e21a1 100644
--- a/plugins/header_rewrite/operators.h
+++ b/plugins/header_rewrite/operators.h
@@ -39,10 +39,10 @@ public:
   {
     TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetConfig");
   }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetConfig);
@@ -58,11 +58,11 @@ class OperatorSetStatus : public Operator
 {
 public:
   OperatorSetStatus() : _reason(nullptr), _reason_len(0) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetStatus"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void initialize_hooks();
-  void exec(const Resources &res) const;
+  void initialize_hooks() override;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetStatus);
@@ -76,11 +76,11 @@ class OperatorSetStatusReason : public Operator
 {
 public:
   OperatorSetStatusReason() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetStatusReason"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void initialize_hooks();
-  void exec(const Resources &res) const;
+  void initialize_hooks() override;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetStatusReason);
@@ -92,10 +92,10 @@ class OperatorSetDestination : public Operator
 {
 public:
   OperatorSetDestination() : _url_qual(URL_QUAL_NONE) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetDestination"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetDestination);
@@ -108,7 +108,7 @@ class OperatorSetRedirect : public Operator
 {
 public:
   OperatorSetRedirect() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetRedirect"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
   TSHttpStatus
   get_status()
   {
@@ -122,7 +122,7 @@ public:
   }
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetRedirect);
@@ -137,7 +137,7 @@ public:
   OperatorNoOp() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorNoOp"); }
 
 protected:
-  void exec(const Resources & /* res ATS_UNUSED */) const {};
+  void exec(const Resources & /* res ATS_UNUSED */) const override{};
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorNoOp);
@@ -147,10 +147,10 @@ class OperatorSetTimeoutOut : public Operator
 {
 public:
   OperatorSetTimeoutOut() : _type(TO_OUT_UNDEFINED) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetTimeoutOut"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetTimeoutOut);
@@ -171,10 +171,10 @@ class OperatorSkipRemap : public Operator
 {
 public:
   OperatorSkipRemap() : _skip_remap(false) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSkipRemap"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSkipRemap);
@@ -189,7 +189,7 @@ public:
   OperatorRMHeader() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorRMHeader"); }
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorRMHeader);
@@ -199,10 +199,10 @@ class OperatorAddHeader : public OperatorHeaders
 {
 public:
   OperatorAddHeader() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorAddHeader"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorAddHeader);
@@ -214,10 +214,10 @@ class OperatorSetHeader : public OperatorHeaders
 {
 public:
   OperatorSetHeader() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetHeader"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetHeader);
@@ -229,10 +229,10 @@ class OperatorCounter : public Operator
 {
 public:
   OperatorCounter() : _counter_name(""), _counter(TS_ERROR) { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorCounter"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorCounter);
@@ -247,7 +247,7 @@ public:
   OperatorRMCookie() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorRMCookie"); }
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorRMCookie);
@@ -257,10 +257,10 @@ class OperatorAddCookie : public OperatorCookies
 {
 public:
   OperatorAddCookie() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorAddCookie"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorAddCookie);
@@ -272,10 +272,10 @@ class OperatorSetCookie : public OperatorCookies
 {
 public:
   OperatorSetCookie() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetCookie"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void exec(const Resources &res) const;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetCookie);
@@ -299,11 +299,11 @@ class OperatorSetConnDSCP : public Operator
 {
 public:
   OperatorSetConnDSCP() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetConnDSCP"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void initialize_hooks();
-  void exec(const Resources &res) const;
+  void initialize_hooks() override;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetConnDSCP);
@@ -315,11 +315,11 @@ class OperatorSetConnMark : public Operator
 {
 public:
   OperatorSetConnMark() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetConnMark"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void initialize_hooks();
-  void exec(const Resources &res) const;
+  void initialize_hooks() override;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetConnMark);
@@ -331,11 +331,11 @@ class OperatorSetDebug : public Operator
 {
 public:
   OperatorSetDebug() { TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSetDebug"); }
-  void initialize(Parser &p);
+  void initialize(Parser &p) override;
 
 protected:
-  void initialize_hooks();
-  void exec(const Resources &res) const;
+  void initialize_hooks() override;
+  void exec(const Resources &res) const override;
 
 private:
   DISALLOW_COPY_AND_ASSIGN(OperatorSetDebug);
diff --git a/plugins/s3_auth/aws_auth_v4_wrap.h b/plugins/s3_auth/aws_auth_v4_wrap.h
index eea837b..a435147 100644
--- a/plugins/s3_auth/aws_auth_v4_wrap.h
+++ b/plugins/s3_auth/aws_auth_v4_wrap.h
@@ -91,34 +91,34 @@ class TsApi : public TsInterface
 {
 public:
   TsApi(TSMBuffer bufp, TSMLoc hdrs, TSMLoc url) : _bufp(bufp), _hdrs(hdrs), _url(url) {}
-  ~TsApi() {}
+  ~TsApi() override {}
   const char *
-  getMethod(int *len)
+  getMethod(int *len) override
   {
     return TSHttpHdrMethodGet(_bufp, _hdrs, len);
   }
   const char *
-  getHost(int *len)
+  getHost(int *len) override
   {
     return TSHttpHdrHostGet(_bufp, _hdrs, len);
   }
   const char *
-  getPath(int *len)
+  getPath(int *len) override
   {
     return TSUrlPathGet(_bufp, _url, len);
   }
   const char *
-  getQuery(int *len)
+  getQuery(int *len) override
   {
     return TSUrlHttpQueryGet(_bufp, _url, len);
   }
   HeaderIterator
-  headerBegin()
+  headerBegin() override
   {
     return HeaderIterator(_bufp, _hdrs, TSMimeHdrFieldGet(_bufp, _hdrs, 0));
   }
   HeaderIterator
-  headerEnd()
+  headerEnd() override
   {
     return HeaderIterator(_bufp, _hdrs, TS_NULL_MLOC);
   }
diff --git a/proxy/ControlMatcher.h b/proxy/ControlMatcher.h
index be88890..4a02a15 100644
--- a/proxy/ControlMatcher.h
+++ b/proxy/ControlMatcher.h
@@ -132,10 +132,10 @@ public:
 class HttpRequestData : public RequestData
 {
 public:
-  inkcoreapi char *get_string();
-  inkcoreapi const char *get_host();
-  inkcoreapi sockaddr const *get_ip();
-  inkcoreapi sockaddr const *get_client_ip();
+  inkcoreapi char *get_string() override;
+  inkcoreapi const char *get_host() override;
+  inkcoreapi sockaddr const *get_ip() override;
+  inkcoreapi sockaddr const *get_client_ip() override;
 
   HttpRequestData()
     : hdr(nullptr),
diff --git a/proxy/IPAllow.h b/proxy/IPAllow.h
index 9994dae..7039095 100644
--- a/proxy/IPAllow.h
+++ b/proxy/IPAllow.h
@@ -113,7 +113,7 @@ public:
   enum match_key_t { SRC_ADDR, DEST_ADDR };
 
   IpAllow(const char *config_var, const char *name, const char *action_val);
-  ~IpAllow();
+  ~IpAllow() override;
   void Print();
   AclRecord *match(IpEndpoint const *ip, match_key_t key) const;
   AclRecord *match(sockaddr const *ip, match_key_t key) const;
diff --git a/proxy/InkAPIInternal.h b/proxy/InkAPIInternal.h
index a0b16d6..47f8c93 100644
--- a/proxy/InkAPIInternal.h
+++ b/proxy/InkAPIInternal.h
@@ -100,7 +100,7 @@ struct INKConfigImpl : public ConfigInfo {
   void *mdata;
   TSConfigDestroyFunc m_destroy_func;
 
-  virtual ~INKConfigImpl() { m_destroy_func(mdata); }
+  ~INKConfigImpl() override { m_destroy_func(mdata); }
 };
 
 struct HttpAltInfo {
diff --git a/proxy/InkIOCoreAPI.cc b/proxy/InkIOCoreAPI.cc
index f1c81b7..cb4ef01 100644
--- a/proxy/InkIOCoreAPI.cc
+++ b/proxy/InkIOCoreAPI.cc
@@ -102,7 +102,7 @@ struct INKThreadInternal : public EThread {
     ink_cond_init(&completion.signal);
   }
 
-  ~INKThreadInternal()
+  ~INKThreadInternal() override
   {
     ink_mutex_destroy(&completion.lock);
     ink_cond_destroy(&completion.signal);
diff --git a/proxy/ParentConsistentHash.h b/proxy/ParentConsistentHash.h
index 9f1897d..349c398 100644
--- a/proxy/ParentConsistentHash.h
+++ b/proxy/ParentConsistentHash.h
@@ -50,15 +50,16 @@ public:
   static const int PRIMARY   = 0;
   static const int SECONDARY = 1;
   ParentConsistentHash(ParentRecord *_parent_record);
-  ~ParentConsistentHash();
+  ~ParentConsistentHash() override;
   pRecord *
-  getParents(ParentResult *result)
+  getParents(ParentResult *result) override
   {
     return parents[result->last_lookup];
   }
   uint64_t getPathHash(HttpRequestData *hrdata, ATSHash64 *h);
-  void selectParent(bool firstCall, ParentResult *result, RequestData *rdata, unsigned int fail_threshold, unsigned int retry_time);
+  void selectParent(bool firstCall, ParentResult *result, RequestData *rdata, unsigned int fail_threshold,
+                    unsigned int retry_time) override;
   void markParentDown(ParentResult *result, unsigned int fail_threshold, unsigned int retry_time);
-  uint32_t numParents(ParentResult *result) const;
+  uint32_t numParents(ParentResult *result) const override;
   void markParentUp(ParentResult *result);
 };
diff --git a/proxy/ParentRoundRobin.h b/proxy/ParentRoundRobin.h
index af8935a..6b31a60 100644
--- a/proxy/ParentRoundRobin.h
+++ b/proxy/ParentRoundRobin.h
@@ -40,12 +40,13 @@ class ParentRoundRobin : public ParentSelectionStrategy
 
 public:
   ParentRoundRobin(ParentRecord *_parent_record, ParentRR_t _round_robin_type);
-  ~ParentRoundRobin();
+  ~ParentRoundRobin() override;
   pRecord *
-  getParents(ParentResult *result)
+  getParents(ParentResult *result) override
   {
     return parents;
   }
-  void selectParent(bool firstCall, ParentResult *result, RequestData *rdata, unsigned int fail_threshold, unsigned int retry_time);
-  uint32_t numParents(ParentResult *result) const;
+  void selectParent(bool firstCall, ParentResult *result, RequestData *rdata, unsigned int fail_threshold,
+                    unsigned int retry_time) override;
+  uint32_t numParents(ParentResult *result) const override;
 };
diff --git a/proxy/ParentSelection.h b/proxy/ParentSelection.h
index 0243505..7ba5065 100644
--- a/proxy/ParentSelection.h
+++ b/proxy/ParentSelection.h
@@ -301,7 +301,7 @@ class ParentConfigParams : public ConfigInfo
 {
 public:
   explicit ParentConfigParams(P_table *_parent_table);
-  ~ParentConfigParams();
+  ~ParentConfigParams() override;
 
   bool apiParentExists(HttpRequestData *rdata);
   void findParent(HttpRequestData *rdata, ParentResult *result, unsigned int fail_threshold, unsigned int retry_time);
diff --git a/proxy/PluginVC.h b/proxy/PluginVC.h
index be866d1..96aba0f 100644
--- a/proxy/PluginVC.h
+++ b/proxy/PluginVC.h
@@ -72,42 +72,42 @@ class PluginVC : public NetVConnection, public PluginIdentity
 
 public:
   PluginVC(PluginVCCore *core_obj);
-  ~PluginVC();
+  ~PluginVC() override;
 
-  virtual VIO *do_io_read(Continuation *c = nullptr, int64_t nbytes = INT64_MAX, MIOBuffer *buf = nullptr);
+  VIO *do_io_read(Continuation *c = nullptr, int64_t nbytes = INT64_MAX, MIOBuffer *buf = nullptr) override;
 
-  virtual VIO *do_io_write(Continuation *c = nullptr, int64_t nbytes = INT64_MAX, IOBufferReader *buf = nullptr,
-                           bool owner = false);
+  VIO *do_io_write(Continuation *c = nullptr, int64_t nbytes = INT64_MAX, IOBufferReader *buf = nullptr,
+                   bool owner = false) override;
 
-  virtual void do_io_close(int lerrno = -1);
-  virtual void do_io_shutdown(ShutdownHowTo_t howto);
+  void do_io_close(int lerrno = -1) override;
+  void do_io_shutdown(ShutdownHowTo_t howto) override;
 
   // Reenable a given vio.  The public interface is through VIO::reenable
-  virtual void reenable(VIO *vio);
-  virtual void reenable_re(VIO *vio);
+  void reenable(VIO *vio) override;
+  void reenable_re(VIO *vio) override;
 
   // Timeouts
-  virtual void set_active_timeout(ink_hrtime timeout_in);
-  virtual void set_inactivity_timeout(ink_hrtime timeout_in);
-  virtual void cancel_active_timeout();
-  virtual void cancel_inactivity_timeout();
-  virtual void add_to_keep_alive_queue();
-  virtual void remove_from_keep_alive_queue();
-  virtual bool add_to_active_queue();
-  virtual ink_hrtime get_active_timeout();
-  virtual ink_hrtime get_inactivity_timeout();
+  void set_active_timeout(ink_hrtime timeout_in) override;
+  void set_inactivity_timeout(ink_hrtime timeout_in) override;
+  void cancel_active_timeout() override;
+  void cancel_inactivity_timeout() override;
+  void add_to_keep_alive_queue() override;
+  void remove_from_keep_alive_queue() override;
+  bool add_to_active_queue() override;
+  ink_hrtime get_active_timeout() override;
+  ink_hrtime get_inactivity_timeout() override;
 
   // Pure virutal functions we need to compile
-  virtual SOCKET get_socket();
-  virtual void set_local_addr();
-  virtual void set_remote_addr();
-  virtual int set_tcp_init_cwnd(int init_cwnd);
-  virtual int set_tcp_congestion_control(int);
+  SOCKET get_socket() override;
+  void set_local_addr() override;
+  void set_remote_addr() override;
+  int set_tcp_init_cwnd(int init_cwnd) override;
+  int set_tcp_congestion_control(int) override;
 
-  virtual void apply_options();
+  void apply_options() override;
 
-  virtual bool get_data(int id, void *data);
-  virtual bool set_data(int id, void *data);
+  bool get_data(int id, void *data) override;
+  bool set_data(int id, void *data) override;
 
   virtual PluginVC *
   get_other_side()
@@ -117,14 +117,14 @@ public:
 
   //@{ @name Plugin identity.
   /// Override for @c PluginIdentity.
-  virtual const char *
-  getPluginTag() const
+  const char *
+  getPluginTag() const override
   {
     return plugin_tag;
   }
   /// Override for @c PluginIdentity.
-  virtual int64_t
-  getPluginId() const
+  int64_t
+  getPluginId() const override
   {
     return plugin_id;
   }
@@ -192,7 +192,7 @@ class PluginVCCore : public Continuation
 
 public:
   PluginVCCore();
-  ~PluginVCCore();
+  ~PluginVCCore() override;
 
   // Allocate a PluginVCCore object, passing the continuation which
   // will receive NET_EVENT_ACCEPT to accept the new session.
diff --git a/proxy/ProtocolProbeSessionAccept.h b/proxy/ProtocolProbeSessionAccept.h
index 13fd7b9..8ba8420 100644
--- a/proxy/ProtocolProbeSessionAccept.h
+++ b/proxy/ProtocolProbeSessionAccept.h
@@ -44,17 +44,17 @@ public:
     memset(endpoint, 0, sizeof(endpoint));
     SET_HANDLER(&ProtocolProbeSessionAccept::mainEvent);
   }
-  ~ProtocolProbeSessionAccept() {}
+  ~ProtocolProbeSessionAccept() override {}
   void registerEndpoint(ProtoGroupKey key, SessionAccept *ap);
 
-  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *);
+  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *) override;
 
   // noncopyable
   ProtocolProbeSessionAccept(const ProtocolProbeSessionAccept &) = delete;            // disabled
   ProtocolProbeSessionAccept &operator=(const ProtocolProbeSessionAccept &) = delete; // disabled
 
 private:
-  int mainEvent(int event, void *netvc);
+  int mainEvent(int event, void *netvc) override;
 
   /** Child acceptors, index by @c ProtoGroupKey
 
diff --git a/proxy/Show.h b/proxy/Show.h
index 99fe784..9db7263 100644
--- a/proxy/Show.h
+++ b/proxy/Show.h
@@ -156,7 +156,7 @@ public:
     ebuf   = buf + sz;
   }
 
-  ~ShowCont()
+  ~ShowCont() override
   {
     ats_free(sarg);
     ats_free(start);
diff --git a/proxy/StatPages.h b/proxy/StatPages.h
index 46380f8..e337cbb 100644
--- a/proxy/StatPages.h
+++ b/proxy/StatPages.h
@@ -94,7 +94,7 @@ class BaseStatPagesHandler : public Continuation
 {
 public:
   BaseStatPagesHandler(ProxyMutex *amutex) : Continuation(amutex), response(nullptr), response_size(0), response_length(0){};
-  ~BaseStatPagesHandler() { resp_clear(); };
+  ~BaseStatPagesHandler() override { resp_clear(); };
 
 protected:
   inkcoreapi void resp_clear(void);
diff --git a/proxy/TransformInternal.h b/proxy/TransformInternal.h
index 2eacc69..6ba655b 100644
--- a/proxy/TransformInternal.h
+++ b/proxy/TransformInternal.h
@@ -37,12 +37,12 @@ public:
 
   int handle_event(int event, void *edata);
 
-  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf);
-  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false);
-  void do_io_close(int lerrno = -1);
-  void do_io_shutdown(ShutdownHowTo_t howto);
+  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf) override;
+  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) override;
+  void do_io_close(int lerrno = -1) override;
+  void do_io_shutdown(ShutdownHowTo_t howto) override;
 
-  void reenable(VIO *vio);
+  void reenable(VIO *vio) override;
 
 public:
   TransformVConnection *m_tvc;
diff --git a/proxy/api/ts/InkAPIPrivateIOCore.h b/proxy/api/ts/InkAPIPrivateIOCore.h
index cb642ba..c19dbc4 100644
--- a/proxy/api/ts/InkAPIPrivateIOCore.h
+++ b/proxy/api/ts/InkAPIPrivateIOCore.h
@@ -70,28 +70,28 @@ public:
   INKVConnInternal();
   INKVConnInternal(TSEventFunc funcp, TSMutex mutexp);
 
-  virtual void destroy();
+  void destroy() override;
 
-  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf);
+  VIO *do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf) override;
 
-  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false);
+  VIO *do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *buf, bool owner = false) override;
 
   void do_io_transform(VConnection *vc);
 
-  void do_io_close(int lerrno = -1);
+  void do_io_close(int lerrno = -1) override;
 
-  void do_io_shutdown(ShutdownHowTo_t howto);
+  void do_io_shutdown(ShutdownHowTo_t howto) override;
 
-  void reenable(VIO *vio);
+  void reenable(VIO *vio) override;
 
   void retry(unsigned int delay);
 
-  bool get_data(int id, void *data);
-  bool set_data(int id, void *data);
+  bool get_data(int id, void *data) override;
+  bool set_data(int id, void *data) override;
 
 protected:
-  virtual void clear();
-  virtual void free();
+  void clear() override;
+  void free() override;
 
 public:
   VIO m_read_vio;
diff --git a/proxy/hdrs/HdrHeap.h b/proxy/hdrs/HdrHeap.h
index d4736c8..8b0b669 100644
--- a/proxy/hdrs/HdrHeap.h
+++ b/proxy/hdrs/HdrHeap.h
@@ -140,7 +140,7 @@ enum {
 class HdrStrHeap : public RefCountObj
 {
 public:
-  virtual void free();
+  void free() override;
 
   char *allocate(int nbytes);
   char *expand(char *ptr, int old_size, int new_size);
diff --git a/proxy/http/HttpCacheSM.h b/proxy/http/HttpCacheSM.h
index 23e0a9b..f1d8872 100644
--- a/proxy/http/HttpCacheSM.h
+++ b/proxy/http/HttpCacheSM.h
@@ -43,7 +43,7 @@ class HttpCacheSM;
 
 struct HttpCacheAction : public Action {
   HttpCacheAction();
-  virtual void cancel(Continuation *c = nullptr);
+  void cancel(Continuation *c = nullptr) override;
   void
   init(HttpCacheSM *sm_arg)
   {
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index 37605ff..833034c 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -766,7 +766,7 @@ struct OverridableHttpConfigParams {
 struct HttpConfigParams : public ConfigInfo {
 public:
   HttpConfigParams();
-  ~HttpConfigParams();
+  ~HttpConfigParams() override;
 
   enum {
     CACHE_REQUIRED_HEADERS_NONE                   = 0,
diff --git a/proxy/http/HttpPages.h b/proxy/http/HttpPages.h
index d5f827a..f5e1e88 100644
--- a/proxy/http/HttpPages.h
+++ b/proxy/http/HttpPages.h
@@ -56,7 +56,7 @@ class HttpPagesHandler : public BaseStatPagesHandler
 {
 public:
   HttpPagesHandler(Continuation *cont, HTTPHdr *header);
-  ~HttpPagesHandler();
+  ~HttpPagesHandler() override;
 
   int handle_smlist(int event, void *edata);
   int handle_smdetails(int event, void *edata);
diff --git a/proxy/http/HttpServerSession.h b/proxy/http/HttpServerSession.h
index 652f6d9..548653d 100644
--- a/proxy/http/HttpServerSession.h
+++ b/proxy/http/HttpServerSession.h
@@ -106,15 +106,15 @@ public:
     return buf_reader;
   };
 
-  virtual VIO *do_io_read(Continuation *c, int64_t nbytes = INT64_MAX, MIOBuffer *buf = nullptr);
+  VIO *do_io_read(Continuation *c, int64_t nbytes = INT64_MAX, MIOBuffer *buf = nullptr) override;
 
-  virtual VIO *do_io_write(Continuation *c = nullptr, int64_t nbytes = INT64_MAX, IOBufferReader *buf = nullptr,
-                           bool owner = false);
+  VIO *do_io_write(Continuation *c = nullptr, int64_t nbytes = INT64_MAX, IOBufferReader *buf = nullptr,
+                   bool owner = false) override;
 
-  virtual void do_io_close(int lerrno = -1);
-  virtual void do_io_shutdown(ShutdownHowTo_t howto);
+  void do_io_close(int lerrno = -1) override;
+  void do_io_shutdown(ShutdownHowTo_t howto) override;
 
-  virtual void reenable(VIO *vio);
+  void reenable(VIO *vio) override;
 
   void release();
   void attach_hostname(const char *hostname);
diff --git a/proxy/http/HttpSessionAccept.h b/proxy/http/HttpSessionAccept.h
index 30b8a7f..0a57eef 100644
--- a/proxy/http/HttpSessionAccept.h
+++ b/proxy/http/HttpSessionAccept.h
@@ -203,9 +203,9 @@ public:
     return;
   }
 
-  ~HttpSessionAccept() { return; }
-  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *);
-  int mainEvent(int event, void *netvc);
+  ~HttpSessionAccept() override { return; }
+  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *) override;
+  int mainEvent(int event, void *netvc) override;
 
   // noncopyable
   HttpSessionAccept(const HttpSessionAccept &) = delete;
diff --git a/proxy/http/remap/RemapPlugins.h b/proxy/http/remap/RemapPlugins.h
index 94b2e6c..fd50974 100644
--- a/proxy/http/remap/RemapPlugins.h
+++ b/proxy/http/remap/RemapPlugins.h
@@ -44,7 +44,7 @@ struct RemapPlugins : public Continuation {
   {
   }
 
-  ~RemapPlugins() { _cur = 0; }
+  ~RemapPlugins() override { _cur = 0; }
   // Some basic setters
   void
   setState(HttpTransact::State *state)
diff --git a/proxy/http/remap/RemapProcessor.h b/proxy/http/remap/RemapProcessor.h
index 04f33e0..ac941d2 100644
--- a/proxy/http/remap/RemapProcessor.h
+++ b/proxy/http/remap/RemapProcessor.h
@@ -43,12 +43,12 @@ class RemapProcessor : public Processor
 {
 public:
   RemapProcessor() : ET_REMAP(0), _use_separate_remap_thread(false) {}
-  ~RemapProcessor() {}
+  ~RemapProcessor() override {}
   bool setup_for_remap(HttpTransact::State *s, UrlRewrite *table);
   bool finish_remap(HttpTransact::State *s, UrlRewrite *table);
 
   Action *perform_remap(Continuation *cont, HttpTransact::State *s);
-  int start(int num_threads, size_t stacksize);
+  int start(int num_threads, size_t stacksize) override;
   bool LessThan(HttpTransact::State *, HttpTransact::State *);
   void
   setUseSeparateThread()
diff --git a/proxy/http/remap/UrlRewrite.h b/proxy/http/remap/UrlRewrite.h
index c8decef..8421f43 100644
--- a/proxy/http/remap/UrlRewrite.h
+++ b/proxy/http/remap/UrlRewrite.h
@@ -54,7 +54,7 @@ class UrlRewrite : public RefCountObj
 {
 public:
   UrlRewrite();
-  ~UrlRewrite();
+  ~UrlRewrite() override;
 
   int BuildTable(const char *path);
   mapping_type Remap_redirect(HTTPHdr *request_header, URL *redirect_url);
diff --git a/proxy/http2/Http2ClientSession.h b/proxy/http2/Http2ClientSession.h
index 4904007..fe05e52 100644
--- a/proxy/http2/Http2ClientSession.h
+++ b/proxy/http2/Http2ClientSession.h
@@ -259,7 +259,7 @@ public:
     return "http/2";
   }
 
-  virtual int
+  int
   populate_protocol(ts::string_view *result, int size) const override
   {
     int retval = 0;
@@ -272,7 +272,7 @@ public:
     return retval;
   }
 
-  virtual const char *
+  const char *
   protocol_contains(ts::string_view prefix) const override
   {
     const char *retval = nullptr;
diff --git a/proxy/http2/Http2SessionAccept.h b/proxy/http2/Http2SessionAccept.h
index e742b3c..56841f9 100644
--- a/proxy/http2/Http2SessionAccept.h
+++ b/proxy/http2/Http2SessionAccept.h
@@ -40,10 +40,10 @@
 
 struct Http2SessionAccept : public SessionAccept {
   explicit Http2SessionAccept(const HttpSessionAccept::Options &);
-  ~Http2SessionAccept();
+  ~Http2SessionAccept() override;
 
-  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *);
-  int mainEvent(int event, void *netvc);
+  bool accept(NetVConnection *, MIOBuffer *, IOBufferReader *) override;
+  int mainEvent(int event, void *netvc) override;
 
   // noncopyable
   Http2SessionAccept(const Http2SessionAccept &) = delete;
diff --git a/proxy/http2/Http2Stream.h b/proxy/http2/Http2Stream.h
index 7c642b5..1fecf80 100644
--- a/proxy/http2/Http2Stream.h
+++ b/proxy/http2/Http2Stream.h
@@ -158,8 +158,8 @@ public:
   void update_write_request(IOBufferReader *buf_reader, int64_t write_len, bool send_update);
   void signal_write_event(bool call_update);
   void reenable(VIO *vio) override;
-  virtual void transaction_done() override;
-  virtual bool
+  void transaction_done() override;
+  bool
   ignore_keep_alive() override
   {
     // If we return true here, Connection header will always be "close".
@@ -208,15 +208,15 @@ public:
 
   void release(IOBufferReader *r) override;
 
-  virtual bool
+  bool
   allow_half_open() const override
   {
     return false;
   }
 
-  virtual void set_active_timeout(ink_hrtime timeout_in) override;
-  virtual void set_inactivity_timeout(ink_hrtime timeout_in) override;
-  virtual void cancel_inactivity_timeout() override;
+  void set_active_timeout(ink_hrtime timeout_in) override;
+  void set_inactivity_timeout(ink_hrtime timeout_in) override;
+  void cancel_inactivity_timeout() override;
   void clear_inactive_timer();
   void clear_active_timer();
   void clear_timers();
diff --git a/proxy/logging/LogCollationAccept.h b/proxy/logging/LogCollationAccept.h
index 896130c..315ca89 100644
--- a/proxy/logging/LogCollationAccept.h
+++ b/proxy/logging/LogCollationAccept.h
@@ -29,7 +29,7 @@
 struct LogCollationAccept : public Continuation {
 public:
   LogCollationAccept(int port);
-  ~LogCollationAccept();
+  ~LogCollationAccept() override;
 
   int accept_event(int event, NetVConnection *net_vc);
 
diff --git a/proxy/logging/LogCollationClientSM.h b/proxy/logging/LogCollationClientSM.h
index d8d45bb..e10cc1f 100644
--- a/proxy/logging/LogCollationClientSM.h
+++ b/proxy/logging/LogCollationClientSM.h
@@ -45,7 +45,7 @@ class LogCollationClientSM : public LogCollationBase, public Continuation
 {
 public:
   LogCollationClientSM(LogHost *log_host);
-  ~LogCollationClientSM();
+  ~LogCollationClientSM() override;
 
   int client_handler(int event, void *data);
 
diff --git a/proxy/logging/LogConfig.h b/proxy/logging/LogConfig.h
index 3cca831..571f092 100644
--- a/proxy/logging/LogConfig.h
+++ b/proxy/logging/LogConfig.h
@@ -101,7 +101,7 @@ class LogConfig : public ConfigInfo
 {
 public:
   LogConfig();
-  ~LogConfig();
+  ~LogConfig() override;
 
   void init(LogConfig *previous_config = nullptr);
   void display(FILE *fd = stdout);
diff --git a/proxy/logging/LogFieldAliasMap.h b/proxy/logging/LogFieldAliasMap.h
index d36db89..271df7c 100644
--- a/proxy/logging/LogFieldAliasMap.h
+++ b/proxy/logging/LogFieldAliasMap.h
@@ -126,11 +126,11 @@ private:
 
 public:
   LogFieldAliasTable() : m_min(0), m_max(0), m_entries(0), m_table(nullptr) {}
-  ~LogFieldAliasTable() { delete[] m_table; }
+  ~LogFieldAliasTable() override { delete[] m_table; }
   void init(size_t numPairs, ...);
 
   int
-  asInt(char *key, IntType *val, bool case_sensitive) const
+  asInt(char *key, IntType *val, bool case_sensitive) const override
   {
     int retVal = INVALID_STRING;
 
@@ -156,7 +156,7 @@ public:
   }
 
   int
-  asString(IntType key, char *buf, size_t bufLen, size_t *numCharsPtr = nullptr) const
+  asString(IntType key, char *buf, size_t bufLen, size_t *numCharsPtr = nullptr) const override
   {
     int retVal;
     size_t numChars;
@@ -194,7 +194,7 @@ class LogFieldAliasTimeHex : public LogFieldAliasMap
 {
 public:
   int
-  asInt(char *str, IntType *time, bool /* case_sensitive ATS_UNUSED */) const
+  asInt(char *str, IntType *time, bool /* case_sensitive ATS_UNUSED */) const override
   {
     unsigned long a;
     // coverity[secure_coding]
@@ -207,7 +207,7 @@ public:
   }
 
   int
-  asString(IntType time, char *buf, size_t bufLen, size_t *numCharsPtr = nullptr) const
+  asString(IntType time, char *buf, size_t bufLen, size_t *numCharsPtr = nullptr) const override
   {
     return (LogUtils::timestamp_to_hex_str(time, buf, bufLen, numCharsPtr) ? BUFFER_TOO_SMALL : ALL_OK);
   }
diff --git a/proxy/logging/LogFile.h b/proxy/logging/LogFile.h
index 2a615c5..9424a4d 100644
--- a/proxy/logging/LogFile.h
+++ b/proxy/logging/LogFile.h
@@ -46,7 +46,7 @@ public:
   LogFile(const char *name, const char *header, LogFileFormat format, uint64_t signature, size_t ascii_buffer_size = 4 * 9216,
           size_t max_line_size = 9216);
   LogFile(const LogFile &);
-  ~LogFile();
+  ~LogFile() override;
 
   enum {
     LOG_FILE_NO_ERROR = 0,
@@ -57,7 +57,7 @@ public:
     LOG_FILE_FILESYSTEM_CHECKS_FAILED
   };
 
-  int preproc_and_try_delete(LogBuffer *lb);
+  int preproc_and_try_delete(LogBuffer *lb) override;
 
   int roll(long interval_start, long interval_end);
 
diff --git a/proxy/logging/LogFilter.h b/proxy/logging/LogFilter.h
index 4f45abf..1597ab6 100644
--- a/proxy/logging/LogFilter.h
+++ b/proxy/logging/LogFilter.h
@@ -72,7 +72,7 @@ public:
   static const char *OPERATOR_NAME[];
 
   LogFilter(const char *name, LogField *field, Action action, Operator oper);
-  virtual ~LogFilter();
+  ~LogFilter() override;
 
   char *
   name() const
@@ -129,12 +129,12 @@ public:
   LogFilterString(const char *name, LogField *field, Action a, Operator o, char *value);
   LogFilterString(const char *name, LogField *field, Action a, Operator o, size_t num_values, char **value);
   LogFilterString(const LogFilterString &rhs);
-  ~LogFilterString();
+  ~LogFilterString() override;
   bool operator==(LogFilterString &rhs);
 
-  bool toss_this_entry(LogAccess *lad);
-  bool wipe_this_entry(LogAccess *lad);
-  void display(FILE *fd = stdout);
+  bool toss_this_entry(LogAccess *lad) override;
+  bool wipe_this_entry(LogAccess *lad) override;
+  void display(FILE *fd = stdout) override;
 
   // noncopyable
   LogFilterString &operator=(LogFilterString &rhs) = delete;
@@ -189,12 +189,12 @@ public:
   LogFilterInt(const char *name, LogField *field, Action a, Operator o, size_t num_values, int64_t *value);
   LogFilterInt(const char *name, LogField *field, Action a, Operator o, char *values);
   LogFilterInt(const LogFilterInt &rhs);
-  ~LogFilterInt();
+  ~LogFilterInt() override;
   bool operator==(LogFilterInt &rhs);
 
-  bool toss_this_entry(LogAccess *lad);
-  bool wipe_this_entry(LogAccess *lad);
-  void display(FILE *fd = stdout);
+  bool toss_this_entry(LogAccess *lad) override;
+  bool wipe_this_entry(LogAccess *lad) override;
+  void display(FILE *fd = stdout) override;
 
   // noncopyable
   LogFilterInt &operator=(LogFilterInt &rhs) = delete;
@@ -221,13 +221,13 @@ public:
   LogFilterIP(const char *name, LogField *field, Action a, Operator o, size_t num_values, IpAddr *value);
   LogFilterIP(const char *name, LogField *field, Action a, Operator o, char *values);
   LogFilterIP(const LogFilterIP &rhs);
-  ~LogFilterIP();
+  ~LogFilterIP() override;
 
   bool operator==(LogFilterIP &rhs);
 
-  virtual bool toss_this_entry(LogAccess *lad);
-  virtual bool wipe_this_entry(LogAccess *lad);
-  void display(FILE *fd = stdout);
+  bool toss_this_entry(LogAccess *lad) override;
+  bool wipe_this_entry(LogAccess *lad) override;
+  void display(FILE *fd = stdout) override;
 
   // noncopyable
   LogFilterIP &operator=(LogFilterIP &rhs) = delete;
diff --git a/proxy/logging/LogFormat.h b/proxy/logging/LogFormat.h
index 910a14a..77792dc 100644
--- a/proxy/logging/LogFormat.h
+++ b/proxy/logging/LogFormat.h
@@ -56,7 +56,7 @@ public:
   LogFormat(const char *name, const char *fieldlist_str, const char *printf_str, unsigned interval_sec = 0);
   LogFormat(const LogFormat &rhs);
 
-  ~LogFormat();
+  ~LogFormat() override;
 
   void display(FILE *fd = stdout);
 
diff --git a/proxy/logging/LogHost.h b/proxy/logging/LogHost.h
index 20b210a..e3e7e05 100644
--- a/proxy/logging/LogHost.h
+++ b/proxy/logging/LogHost.h
@@ -134,12 +134,12 @@ class LogHostList : public LogBufferSink
 {
 public:
   LogHostList();
-  ~LogHostList();
+  ~LogHostList() override;
 
   void add(LogHost *host, bool copy = true);
   unsigned count();
   void clear();
-  int preproc_and_try_delete(LogBuffer *lb);
+  int preproc_and_try_delete(LogBuffer *lb) override;
 
   LogHost *
   first()
diff --git a/proxy/logging/LogObject.h b/proxy/logging/LogObject.h
index 72892b8..a1ba77f 100644
--- a/proxy/logging/LogObject.h
+++ b/proxy/logging/LogObject.h
@@ -101,7 +101,7 @@ public:
             Log::RollingEnabledValues rolling_enabled, int flush_threads, int rolling_interval_sec = 0, int rolling_offset_hr = 0,
             int rolling_size_mb = 0, bool auto_created = false);
   LogObject(LogObject &);
-  virtual ~LogObject();
+  ~LogObject() override;
 
   void add_filter(LogFilter *filter, bool copy = true);
   void set_filter_list(const LogFilterList &list, bool copy = true);

-- 
To stop receiving notification emails like this one, please contact
bcall@apache.org.

Mime
View raw message