summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-07 13:02:36 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-07 13:02:36 +0000
commit3621f68e3b552b877a84ef9fb97fb4cf419267bc (patch)
tree526d59f90336916a5e5f4f289babd36470843647 /gcc/calls.c
parente0e03aa1a484646a0dea60c00180235fdff4dc7c (diff)
downloadgcc-3621f68e3b552b877a84ef9fb97fb4cf419267bc.tar.gz
2013-05-07 Richard Biener <rguenther@suse.de>
* calls.c (special_function_p): setjmp-like functions are leaf. * builtins.def (BUILT_IN_SETJMP): setjmp is leaf. * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198681 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index cdab8e04617..0c7f22566bc 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -545,7 +545,7 @@ special_function_p (const_tree fndecl, int flags)
&& ! strcmp (tname, "sigsetjmp"))
|| (tname[1] == 'a'
&& ! strcmp (tname, "savectx")))
- flags |= ECF_RETURNS_TWICE;
+ flags |= ECF_RETURNS_TWICE | ECF_LEAF;
if (tname[1] == 'i'
&& ! strcmp (tname, "siglongjmp"))
@@ -557,7 +557,7 @@ special_function_p (const_tree fndecl, int flags)
&& ! strcmp (tname, "vfork"))
|| (tname[0] == 'g' && tname[1] == 'e'
&& !strcmp (tname, "getcontext")))
- flags |= ECF_RETURNS_TWICE;
+ flags |= ECF_RETURNS_TWICE | ECF_LEAF;
else if (tname[0] == 'l' && tname[1] == 'o'
&& ! strcmp (tname, "longjmp"))