aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Trippelsdorf <markus@trippelsdorf.de>2013-10-24 17:28:11 +0000
committerJeff Law <law@gcc.gnu.org>2013-10-24 11:28:11 -0600
commit51ce05475cc79a06001eae1163e719f570c7a9a9 (patch)
treefae08a5e55e655a3b6b16ff9f5faa818a6b4fc0d
parentc0f5c38c51a1380cc26694158a2f867f3765ec9b (diff)
downloadgcc-51ce05475cc79a06001eae1163e719f570c7a9a9.zip
gcc-51ce05475cc79a06001eae1163e719f570c7a9a9.tar.gz
gcc-51ce05475cc79a06001eae1163e719f570c7a9a9.tar.bz2
re PR other/58712 (issues found by --enable-checking=valgrind)
PR ipa/58712 * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee as argument. (cgraph_create_edge): Use the new argument. (cgraph_create_indirect_edge): Likewise. From-SVN: r204026
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/cgraph.c10
2 files changed, 13 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8b663b6..eb381b4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2013-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR ipa/58712
+ * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
+ as argument.
+ (cgraph_create_edge): Use the new argument.
+ (cgraph_create_indirect_edge): Likewise.
+
2013-10-24 Joern Rennecke <joern.rennecke@embecosm.com>
* gcc/config/arc/arc.c (arc_ccfsm_post_advance): Also handle
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index d05d14b..3f6c334 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -817,7 +817,8 @@ cgraph_set_call_stmt (struct cgraph_edge *e, gimple new_stmt,
static struct cgraph_edge *
cgraph_create_edge_1 (struct cgraph_node *caller, struct cgraph_node *callee,
- gimple call_stmt, gcov_type count, int freq)
+ gimple call_stmt, gcov_type count, int freq,
+ bool indir_unknown_callee)
{
struct cgraph_edge *edge;
@@ -877,6 +878,7 @@ cgraph_create_edge_1 (struct cgraph_node *caller, struct cgraph_node *callee,
edge->indirect_info = NULL;
edge->indirect_inlining_edge = 0;
edge->speculative = false;
+ edge->indirect_unknown_callee = indir_unknown_callee;
if (call_stmt && caller->call_site_hash)
cgraph_add_edge_to_call_site_hash (edge);
@@ -890,9 +892,8 @@ cgraph_create_edge (struct cgraph_node *caller, struct cgraph_node *callee,
gimple call_stmt, gcov_type count, int freq)
{
struct cgraph_edge *edge = cgraph_create_edge_1 (caller, callee, call_stmt,
- count, freq);
+ count, freq, false);
- edge->indirect_unknown_callee = 0;
initialize_inline_failed (edge);
edge->next_caller = callee->callers;
@@ -929,10 +930,9 @@ cgraph_create_indirect_edge (struct cgraph_node *caller, gimple call_stmt,
gcov_type count, int freq)
{
struct cgraph_edge *edge = cgraph_create_edge_1 (caller, NULL, call_stmt,
- count, freq);
+ count, freq, true);
tree target;
- edge->indirect_unknown_callee = 1;
initialize_inline_failed (edge);
edge->indirect_info = cgraph_allocate_init_indirect_info ();