summaryrefslogtreecommitdiffstats
path: root/gcc/ipa-pure-const.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-31 16:25:35 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-31 16:25:35 +0000
commit3ea38c1f35c70c83ce74f3dcd0d20ef54e078dd4 (patch)
tree7abd6b17d74d7f3258b196f10f26ef8e74c4a1bc /gcc/ipa-pure-const.c
parent34a510a1f647c486bd213922cd5dc60f9ee6b1a0 (diff)
downloadppe42-gcc-3ea38c1f35c70c83ce74f3dcd0d20ef54e078dd4.tar.gz
ppe42-gcc-3ea38c1f35c70c83ce74f3dcd0d20ef54e078dd4.zip
* gimple.c (gimple_call_builtin_p): New function.
* gimple.h (gimple_call_builtin_p): Declare. * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN to exit. (execute_warn_function_return): BUILT_IN_RETURN is return. (split_critical_edges): Return edges are not critical. (is_ctrl_altering_stmt): Builtin_in_return is altering. (gimple_verify_flow_info): Handle built_in_return. (execute_warn_function_return): Handle built_in_return. * ipa-pure-const.c (check_call): Ignore builtin_return. * gcc.dg/builtin-apply4.c: Compile with -Wmissing-return. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160079 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-pure-const.c')
-rw-r--r--gcc/ipa-pure-const.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 864e49dc8a9..54238856e90 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -369,6 +369,9 @@ check_call (funct_state local, gimple call, bool ipa)
graph. */
if (callee_t)
{
+ /* built_in_return is really just an return statemnt. */
+ if (gimple_call_builtin_p (call, BUILT_IN_RETURN))
+ return;
/* When bad things happen to bad functions, they cannot be const
or pure. */
if (setjmp_call_p (callee_t))
OpenPOWER on IntegriCloud