re PR tree-optimization/57385 ([tree-ssa] Possible segfault in fully_constant_vn_reference_p)

gcc/ChangeLog
        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.

From-SVN: r199282
This commit is contained in:
Alexander Ivchenko 2013-05-24 09:08:45 +00:00 committed by Kirill Yukhin
parent 633a3f2aea
commit 634e03d3b8
3 changed files with 12 additions and 0 deletions

View 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

View 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.

View 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)