Fix misc stuff seen by clang-static-analyzer.
authorMartin Liska <mliska@suse.cz>
Thu, 27 Jun 2019 08:21:32 +0000 (10:21 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 27 Jun 2019 08:21:32 +0000 (08:21 +0000)
2019-06-27  Martin Liska  <mliska@suse.cz>

* lto-dump.c (struct symbol_entry): Add default dtor.
(struct variable_entry): Likewise.
(struct function_entry): Likewise.
(dump_list_functions): Release memory.
(dump_list_variables): Likewise.
2019-06-27  Martin Liska  <mliska@suse.cz>

* libgcov-util.c (gcov_profile_merge): Release allocated
memory.
(calculate_overlap): Likewise.

From-SVN: r272733

gcc/lto/ChangeLog
gcc/lto/lto-dump.c
libgcc/ChangeLog
libgcc/libgcov-util.c

index 95b98ab86643ac938d200c7307ece833661430fb..ad14ac6ce5c4286b516f998dc9f389d0ab10c7ef 100644 (file)
@@ -1,3 +1,11 @@
+2019-06-27  Martin Liska  <mliska@suse.cz>
+
+       * lto-dump.c (struct symbol_entry): Add default dtor.
+       (struct variable_entry): Likewise.
+       (struct function_entry): Likewise.
+       (dump_list_functions): Release memory.
+       (dump_list_variables): Likewise.
+
 2019-06-24  Jan Hubicka  <jh@suse.cz>
 
        * lto-common.c (compare_tree_sccs_1): Compare CXX_ODR_P;
index 691d109ff3449409091aea79af03f556efcde3dc..e9de33cf5d81227a3d5f08dd215150c1bd1fcaf1 100644 (file)
@@ -44,6 +44,9 @@ struct symbol_entry
   symbol_entry (symtab_node *node_): node (node_)
   {}
 
+  virtual ~symbol_entry ()
+  {}
+
   char* get_name () const
   {
     if (flag_lto_dump_demangle)
@@ -72,6 +75,9 @@ struct variable_entry: public symbol_entry
   variable_entry (varpool_node *node_): symbol_entry (node_)
   {}
 
+  virtual ~variable_entry ()
+  {}
+
   virtual size_t get_size () const
   {
     varpool_node *vnode = dyn_cast<varpool_node *> (node);
@@ -99,6 +105,9 @@ struct function_entry: public symbol_entry
   function_entry (cgraph_node *node_): symbol_entry (node_)
   {}
 
+  virtual ~function_entry ()
+  {}
+
   virtual void dump ()
   {
     symbol_entry :: dump ();
@@ -166,7 +175,10 @@ void dump_list_functions (void)
   int i=0;
   symbol_entry* e;
   FOR_EACH_VEC_ELT (v, i, e)
-    e->dump ();
+    {
+      e->dump ();
+      delete e;
+    }
 }
 
 /* Dump list of variables and their details.  */
@@ -194,7 +206,10 @@ void dump_list_variables (void)
   int i=0;
   symbol_entry* e;
   FOR_EACH_VEC_ELT (v, i, e)
-    e->dump ();
+    {
+      e->dump ();
+      delete e;
+    }
 }
 
 /* Dump symbol list.  */
index a6e8c202b9d612f51396435554bfbf91b5175fd6..fa8230629f698a153fee6a8c4ff0482d4c9beeb8 100644 (file)
@@ -1,3 +1,9 @@
+2019-06-27  Martin Liska  <mliska@suse.cz>
+
+       * libgcov-util.c (gcov_profile_merge): Release allocated
+       memory.
+       (calculate_overlap): Likewise.
+
 2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
 
        * config.host: Add libef_ppc.a to the extra files for powerpc-darwin.
index c794132c17237b7269ac2aab91af3ec6d07dda25..404ece6faa6320d110346ce27989d03aa599d33b 100644 (file)
@@ -681,6 +681,9 @@ gcov_profile_merge (struct gcov_info *tgt_profile, struct gcov_info *src_profile
       tgt_tail = gi_ptr;
     }
 
+  free (in_src_not_tgt);
+  free (tgt_infos);
+
   return 0;
 }
 
@@ -1280,6 +1283,8 @@ calculate_overlap (struct gcov_info *gcov_list1,
 
     }
 
+  free (all_infos);
+
   if (overlap_obj_level)
     printf("   SUM:%36s  overlap = %6.2f%% (%5.2f%% %5.2f%%)\n",
            "", sum_val*100, sum_cum_1*100, sum_cum_2*100);