aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2013-07-25 19:10:21 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2013-07-25 17:10:21 +0000
commit49bde17554926a2352b7f1df98d4e02becc1e065 (patch)
tree8d52c0e27c62a558679ffa973f3a0c348cef4b41 /gcc/tree-inline.c
parent4870352d35468211accf8c293bf756eac99bc1e7 (diff)
downloadgcc-49bde17554926a2352b7f1df98d4e02becc1e065.zip
gcc-49bde17554926a2352b7f1df98d4e02becc1e065.tar.gz
gcc-49bde17554926a2352b7f1df98d4e02becc1e065.tar.bz2
cgraph.c (release_function_body): Break out from ...
* cgraph.c (release_function_body): Break out from ... (cgraph_release_function_body): ... this one; also release DECL_RESULT and DECL_ARGUMENTS. * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set old_tree in the map. (create_specialized_node): Update. * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree into index. * cgraphclones.c (cgraph_create_virtual_clone): Do not copy DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT. * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones. * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and DECL_RESULT. From-SVN: r201251
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index cac868a..9b2c815 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -2057,6 +2057,11 @@ initialize_cfun (tree new_fndecl, tree callee_fndecl, gcov_type count)
struct function *src_cfun = DECL_STRUCT_FUNCTION (callee_fndecl);
gcov_type count_scale;
+ if (!DECL_ARGUMENTS (new_fndecl))
+ DECL_ARGUMENTS (new_fndecl) = DECL_ARGUMENTS (callee_fndecl);
+ if (!DECL_RESULT (new_fndecl))
+ DECL_RESULT (new_fndecl) = DECL_RESULT (callee_fndecl);
+
if (ENTRY_BLOCK_PTR_FOR_FUNCTION (src_cfun)->count)
count_scale
= GCOV_COMPUTE_SCALE (count,