From 9911e25a2745e1d523257ace9207d4d85146b8ed Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 5 Aug 2011 22:56:05 +0200 Subject: [PATCH] + PR middle-end/49494 + * ipa-inline-analysis.c (remap_predicate): Add bounds check. + PR middle-end/49494 + * ipa-inline-analysis.c (remap_predicate): Add bounds check. + * gfortran.dg/pr49494.f90: New testcase. From-SVN: r177484 --- gcc/ChangeLog | 5 +++++ gcc/ipa-inline-analysis.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/pr49494.f90 | 12 ++++++++++++ 4 files changed, 23 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/pr49494.f90 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c28baac..8ec9d41 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2011-08-05 Jan Hubicka + PR middle-end/49494 + * ipa-inline-analysis.c (remap_predicate): Add bounds check. + +2011-08-05 Jan Hubicka + PR middle-end/49500 * tree-emultls.c (new_emutls_decl):Add alias_of parameter; handle aliases. diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index b008f05..1055d52 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -1873,6 +1873,7 @@ remap_predicate (struct inline_summary *info, struct inline_summary *callee_info /* See if we can remap condition operand to caller's operand. Otherwise give up. */ if (!operand_map + || VEC_length (int, operand_map) <= c->operand_num || VEC_index (int, operand_map, c->operand_num) == -1) cond_predicate = true_predicate (); else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4739dbc..93bf7f9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2011-08-05 Jan Hubicka + PR middle-end/49494 + * gfortran.dg/pr49494.f90: New testcase. + +2011-08-05 Jan Hubicka + PR middle-end/49735 * gcc.c-torture/compile/pr49735.c: New testcase. diff --git a/gcc/testsuite/gfortran.dg/pr49494.f90 b/gcc/testsuite/gfortran.dg/pr49494.f90 new file mode 100644 index 0000000..b3a35cf --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr49494.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! { dg-options "-O -findirect-inlining -fno-guess-branch-probability -finline-functions -finline-small-functions" } +function more_OK (fcn) + character(*) more_OK + character (*), external :: fcn + more_OK = fcn () +end function more_OK + character(4) :: answer + character(4), external :: is_OK, more_OK + answer = more_OK (is_OK) +contains +END -- 2.7.4