diff options
author | Martin Jambor <mjambor@suse.cz> | 2009-02-25 18:34:40 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2009-02-25 18:34:40 +0100 |
commit | f618d33ef115544bb371c67ff937e9ce97969712 (patch) | |
tree | 4182e728b6903dec746f498b358c66957fd4f37f /gcc/tree-inline.c | |
parent | 054efbba9dbf01e8f1b52f01aafa324f57f701ba (diff) | |
download | gcc-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.c | 12 |
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; |