aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2009-02-25 18:34:40 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2009-02-25 18:34:40 +0100
commitf618d33ef115544bb371c67ff937e9ce97969712 (patch)
tree4182e728b6903dec746f498b358c66957fd4f37f /gcc/tree-inline.c
parent054efbba9dbf01e8f1b52f01aafa324f57f701ba (diff)
downloadgcc-f618d33ef115544bb371c67ff937e9ce97969712.zip
gcc-f618d33ef115544bb371c67ff937e9ce97969712.tar.gz
gcc-f618d33ef115544bb371c67ff937e9ce97969712.tar.bz2
tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and alls_alloca function flags.
2009-02-25 Martin Jambor <mjambor@suse.cz> * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and alls_alloca function flags. (copy_bb): Set calls_setjmp and alls_alloca function flags if such calls are detected. From-SVN: r144428
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 075e575..fd4443c 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1398,6 +1398,7 @@ copy_bb (copy_body_data *id, basic_block bb, int frequency_scale,
{
struct cgraph_node *node;
struct cgraph_edge *edge;
+ int flags;
switch (id->transform_call_graph_edges)
{
@@ -1429,6 +1430,13 @@ copy_bb (copy_body_data *id, basic_block bb, int frequency_scale,
default:
gcc_unreachable ();
}
+
+ flags = gimple_call_flags (stmt);
+
+ if (flags & ECF_MAY_BE_ALLOCA)
+ cfun->calls_alloca = true;
+ if (flags & ECF_RETURNS_TWICE)
+ cfun->calls_setjmp = true;
}
/* If you think we can abort here, you are wrong.
@@ -1745,10 +1753,6 @@ initialize_cfun (tree new_fndecl, tree callee_fndecl, gcov_type count,
gcc_assert (cfun->cfg == NULL);
gcc_assert (cfun->decl == new_fndecl);
- /* No need to copy; this is initialized later in compilation. */
- gcc_assert (!src_cfun->calls_setjmp);
- gcc_assert (!src_cfun->calls_alloca);
-
/* Copy items we preserve during clonning. */
cfun->static_chain_decl = src_cfun->static_chain_decl;
cfun->nonlocal_goto_save_area = src_cfun->nonlocal_goto_save_area;