aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-prop.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2012-04-30 23:34:35 +0200
committerUros Bizjak <uros@gcc.gnu.org>2012-04-30 23:34:35 +0200
commit036c01022a1cfabeaf885a6485b6f25da329ee98 (patch)
treece57d487e05cec03c2151c772f2cb79883c72c40 /gcc/ipa-prop.c
parent24b2a15a832a4ada89c40badfe3742e5fe10891f (diff)
downloadgcc-036c01022a1cfabeaf885a6485b6f25da329ee98.zip
gcc-036c01022a1cfabeaf885a6485b6f25da329ee98.tar.gz
gcc-036c01022a1cfabeaf885a6485b6f25da329ee98.tar.bz2
re PR middle-end/53136 (Use after free in ipa_make_edge_direct_to_target, cxx_printable_name_internal problem)
PR middle-end/53136 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple calls to cgraph_node_name in xstrdup. (ipa_make_edge_direct_to_target): Ditto. * cgraph.c (dump_cgraph_node): Ditto. * tree-sra.c (convert_callers_for_node): Ditto. * lto-symtab.c (lto_cgraph_replace_node): Ditto. * ipa-cp.c (perhaps_add_new_callers): Ditto. * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto. (cgraph_materialize_all_clones): Ditto. * ipa-inline.c (report_inline_failed_reason): Ditto. (want_early_inline_function_p): Ditto. (edge_badness): Ditto. (update_edge_key): Ditto. (flatten_function): Ditto. (ipa_inline): Ditto. (inlinw_always_inline_functions): Ditto. (early_inline_small_functions): Ditto. From-SVN: r187001
Diffstat (limited to 'gcc/ipa-prop.c')
-rw-r--r--gcc/ipa-prop.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 97a6a5c..02d6c31 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -230,8 +230,8 @@ ipa_print_node_jump_functions (FILE *f, struct cgraph_node *node)
continue;
fprintf (f, " callsite %s/%i -> %s/%i : \n",
- cgraph_node_name (node), node->uid,
- cgraph_node_name (cs->callee), cs->callee->uid);
+ xstrdup (cgraph_node_name (node)), node->uid,
+ xstrdup (cgraph_node_name (cs->callee)), cs->callee->uid);
ipa_print_node_jump_functions_for_edge (f, cs);
}
@@ -1780,8 +1780,8 @@ ipa_make_edge_direct_to_target (struct cgraph_edge *ie, tree target)
fprintf (dump_file, "ipa-prop: Discovered %s call to a known target "
"(%s/%i -> %s/%i), for stmt ",
ie->indirect_info->polymorphic ? "a virtual" : "an indirect",
- cgraph_node_name (ie->caller), ie->caller->uid,
- cgraph_node_name (ie->callee), ie->callee->uid);
+ xstrdup (cgraph_node_name (ie->caller)), ie->caller->uid,
+ xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
if (ie->call_stmt)
print_gimple_stmt (dump_file, ie->call_stmt, 2, TDF_SLIM);
else