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;

Reply via email to