Hi, For strchr calls bounds of the first argument are considered as returned which is wrong because NULL may be returned. This patch fixes that. Bootstrapped and tested on x86_64-unknown-linux-gnu. OK for trunk?
Thanks, Ilya -- 2014-12-02 Ilya Enkovich <ilya.enkov...@intel.com> * tree-chkp.c (chkp_build_returned_bound): Don't predict return bounds for strchr calls. diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c index f7def51..1d91aa6 100644 --- a/gcc/tree-chkp.c +++ b/gcc/tree-chkp.c @@ -2163,8 +2163,7 @@ chkp_build_returned_bound (gcall *call) } /* Do not use retbnd when returned bounds are equal to some of passed bounds. */ - else if ((gimple_call_return_flags (call) & ERF_RETURNS_ARG) - || gimple_call_builtin_p (call, BUILT_IN_STRCHR)) + else if (gimple_call_return_flags (call) & ERF_RETURNS_ARG) { gimple_stmt_iterator iter = gsi_for_stmt (call); unsigned int retarg = 0, argno;