gcc/ChangeLog
authorkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 May 2013 09:08:45 +0000 (09:08 +0000)
committerkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 May 2013 09:08:45 +0000 (09:08 +0000)
        PR tree-ssa/57385
        * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
        that index is not negative.

gcc/testsuite/ChangeLog
        PR tree-ssa/57385
        * gcc.dg/tree-ssa/pr57385.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199282 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/tree-ssa-sccvn.c

index ae1d9b5..01f77cb 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
+
+       PR tree-ssa/57385
+       * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
+       that index is not negative.
+
 2013-05-24  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR rtl-optimization/55177
index f9ef3c0..ca359e4 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
+
+       PR tree-ssa/57385
+       * gcc.dg/tree-ssa/pr57385.c: New test.
+
 2013-05-24  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gnat.dg/derived_type4.adb: New test.
index 49d61b0..0e7a74c 100644 (file)
@@ -1294,6 +1294,7 @@ fully_constant_vn_reference_p (vn_reference_t ref)
              == TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0->op0))))
          && GET_MODE_CLASS (TYPE_MODE (op->type)) == MODE_INT
          && GET_MODE_SIZE (TYPE_MODE (op->type)) == 1
+         && tree_int_cst_sgn (op->op0) >= 0
          && compare_tree_int (op->op0, TREE_STRING_LENGTH (arg0->op0)) < 0)
        return build_int_cst_type (op->type,
                                   (TREE_STRING_POINTER (arg0->op0)