aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-08-05 22:56:05 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-08-05 20:56:05 +0000
commit9911e25a2745e1d523257ace9207d4d85146b8ed (patch)
treed80d1cd1420c0d4a368fbeca8de9f188b037fc5f
parent75d3e6e37211c3614d576e7d748f50e55cb169fd (diff)
downloadgcc-9911e25a2745e1d523257ace9207d4d85146b8ed.zip
gcc-9911e25a2745e1d523257ace9207d4d85146b8ed.tar.gz
gcc-9911e25a2745e1d523257ace9207d4d85146b8ed.tar.bz2
+ 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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-inline-analysis.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr49494.f9012
4 files changed, 23 insertions, 0 deletions
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 <jh@suse.cz>
+ PR middle-end/49494
+ * ipa-inline-analysis.c (remap_predicate): Add bounds check.
+
+2011-08-05 Jan Hubicka <jh@suse.cz>
+
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 <jh@suse.cz>
+ PR middle-end/49494
+ * gfortran.dg/pr49494.f90: New testcase.
+
+2011-08-05 Jan Hubicka <jh@suse.cz>
+
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