aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2014-09-26 12:37:44 +0200
committerMartin Liska <marxin@gcc.gnu.org>2014-09-26 10:37:44 +0000
commitbf898b300eea2cd87a1afcadd886c7ae3d593091 (patch)
tree826243916bb4f3470111118df833648f93566f57 /gcc/cgraph.c
parent5535b7d6f3ff58a69b2bf52e7fe8772e2797f112 (diff)
downloadgcc-bf898b300eea2cd87a1afcadd886c7ae3d593091.zip
gcc-bf898b300eea2cd87a1afcadd886c7ae3d593091.tar.gz
gcc-bf898b300eea2cd87a1afcadd886c7ae3d593091.tar.bz2
cgraph.c (cgraph_node::release_body): New argument keep_arguments introduced.
* cgraph.c (cgraph_node::release_body): New argument keep_arguments introduced. * cgraph.h: Likewise. * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced. * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java. * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global. * tree-ssa-alias.h: Likewise. From-SVN: r215640
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r--gcc/cgraph.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 1cfc783..fdcaf79 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -1625,16 +1625,19 @@ release_function_body (tree decl)
/* Release memory used to represent body of function.
Use this only for functions that are released before being translated to
target code (i.e. RTL). Functions that are compiled to RTL and beyond
- are free'd in final.c via free_after_compilation(). */
+ are free'd in final.c via free_after_compilation().
+ KEEP_ARGUMENTS are useful only if you want to rebuild body as thunk. */
void
-cgraph_node::release_body (void)
+cgraph_node::release_body (bool keep_arguments)
{
ipa_transforms_to_apply.release ();
if (!used_as_abstract_origin && symtab->state != PARSING)
{
DECL_RESULT (decl) = NULL;
- DECL_ARGUMENTS (decl) = NULL;
+
+ if (!keep_arguments)
+ DECL_ARGUMENTS (decl) = NULL;
}
/* If the node is abstract and needed, then do not clear DECL_INITIAL
of its associated function function declaration because it's