aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-06-27 10:21:32 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-06-27 08:21:32 +0000
commitc2f7a665a184e4ff00a6ac3fc147f63f276cc5a5 (patch)
tree73d8a4968841119728532fccadcef88a226783c5 /gcc
parentb5b31291bd21749edc3d1f1d74ac09fcb6a89310 (diff)
downloadgcc-c2f7a665a184e4ff00a6ac3fc147f63f276cc5a5.zip
gcc-c2f7a665a184e4ff00a6ac3fc147f63f276cc5a5.tar.gz
gcc-c2f7a665a184e4ff00a6ac3fc147f63f276cc5a5.tar.bz2
Fix misc stuff seen by clang-static-analyzer.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/lto/ChangeLog8
-rw-r--r--gcc/lto/lto-dump.c19
2 files changed, 25 insertions, 2 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 95b98ab..ad14ac6 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -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;
diff --git a/gcc/lto/lto-dump.c b/gcc/lto/lto-dump.c
index 691d109..e9de33c 100644
--- a/gcc/lto/lto-dump.c
+++ b/gcc/lto/lto-dump.c
@@ -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. */