]> sourceware.org Git - libabigail.git/commitdiff
add missing virtual destructors
authorMatthias Maennich via libabigail <libabigail@sourceware.org>
Mon, 15 Apr 2019 17:05:17 +0000 (18:05 +0100)
committerDodji Seketeli <dodji@redhat.com>
Tue, 16 Apr 2019 14:11:01 +0000 (16:11 +0200)
Several virtual desctructors were missing. Even though there might not
have been actual leaks or similar bugs, it is worth fixing these
locations as they might lead to bugs in the future.

Clang also warns at these locations:

  warning: delete called on non-final 'abigail::ir::corpus' that has virtual
  functions but non-virtual destructor [-Wdelete-non-virtual-dtor]

 * include/abg-comparison.h: add virtual destructor for corpus_diff and diff_node_visitor
 * include/abg-corpus.h: add virtual destructor for corpus
 * include/abg-reporter.h: add virtual destructor for reporter_base
 * include/abg-traverse.h: add virtual destructor for traversable_base

Signed-off-by: Matthias Maennich <maennich@google.com>
include/abg-comparison.h
include/abg-corpus.h
include/abg-reporter.h
include/abg-traverse.h

index ba4339c9b434f36777c6762c4ffcc112c647da72..cf2fa4e151a7ff669d8bea48f8634f05c47af043 100644 (file)
@@ -2278,6 +2278,8 @@ public:
 
   class diff_stats;
 
+  virtual ~corpus_diff() {}
+
   /// A convenience typedef for a shared pointer to @ref diff_stats
   typedef shared_ptr<diff_stats> diff_stats_sptr;
 
@@ -2544,6 +2546,8 @@ public:
 
   diff_node_visitor();
 
+  virtual ~diff_node_visitor() {}
+
   diff_node_visitor(visiting_kind k);
 
   visiting_kind
index 258056e452224b5717ee4c0daac17a3320bf1446..1a25b4d1458dcc301f718db9ecfe678fd9d05a44 100644 (file)
@@ -78,6 +78,8 @@ public:
 
   corpus(ir::environment*, const string& path= "");
 
+  virtual ~corpus() {}
+
   const environment*
   get_environment() const;
 
index 4085aeb82bcde292a623296d698703f23de61711..55cb8cc79ddc15c4ec7188ba35a4b38c9e6a96a9 100644 (file)
@@ -141,6 +141,7 @@ public:
   report(const corpus_diff& d, ostream& out,
         const string& indent = "") const = 0;
 
+  virtual ~reporter_base() {}
 }; //end class reporter_base
 
 class default_reporter;
index 5d395c2a439f460d116677b6385b554f475da271..848c71b2484cf1b0c777927903708d53569e03f2 100644 (file)
@@ -76,6 +76,9 @@ public:
   traversable_base()
     : visiting_()
   {}
+
+  virtual ~traversable_base() {}
+
   /// This virtual method is overloaded and implemented by any single
   /// type which instance is going to be visited during the traversal
   /// of translation unit nodes.
This page took 0.038038 seconds and 5 git commands to generate.