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 95b98ab..ad14ac6 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 691d109..e9de33c 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 a6e8c20..fa82306 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 c794132..404ece6 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);