diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-03-11 11:04:30 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-03-11 11:04:30 +0100 |
commit | e89e03ab8ad601244c1206d8fe3b5874b8d59c91 (patch) | |
tree | c7fdf17d81506cf4c706569185532f21539f6f9b | |
parent | efbe978b7a12cc1e7ece68b6a4cee7ab3d434cc3 (diff) | |
download | gcc-e89e03ab8ad601244c1206d8fe3b5874b8d59c91.zip gcc-e89e03ab8ad601244c1206d8fe3b5874b8d59c91.tar.gz gcc-e89e03ab8ad601244c1206d8fe3b5874b8d59c91.tar.bz2 |
re PR tree-optimization/48063 (ICE: verify_stmts failed: conversion of register to a different size with -fno-early-inlining)
PR tree-optimization/48063
* ipa-inline.c (cgraph_decide_inlining): Don't try to
inline functions called once if !tree_can_inline_p (node->callers).
* gcc.dg/torture/pr48063.c: New test.
From-SVN: r170867
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr48063.c | 19 |
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 498e45c4..9630d36 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-03-11 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/48063 + * ipa-inline.c (cgraph_decide_inlining): Don't try to + inline functions called once if !tree_can_inline_p (node->callers). + 2011-03-11 Chen Liqin <liqin.gcc@gmail.com> * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index e8676c8..7ae5f96 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1,5 +1,5 @@ /* Inlining decision heuristics. - Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010 + Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by Jan Hubicka @@ -1498,6 +1498,7 @@ cgraph_decide_inlining (void) && node->callers->caller != node && node->callers->caller->global.inlined_to != node && !node->callers->call_stmt_cannot_inline_p + && tree_can_inline_p (node->callers) && !DECL_EXTERNAL (node->decl)) { cgraph_inline_failed_t reason; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c3dec73..23c94ce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-03-11 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/48063 + * gcc.dg/torture/pr48063.c: New test. + 2011-03-10 Jason Merrill <jason@redhat.com> * g++.dg/template/array22.C: New. diff --git a/gcc/testsuite/gcc.dg/torture/pr48063.c b/gcc/testsuite/gcc.dg/torture/pr48063.c new file mode 100644 index 0000000..d861bf0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr48063.c @@ -0,0 +1,19 @@ +/* PR tree-optimization/48063 */ +/* { dg-do compile } */ +/* { dg-options "-fno-early-inlining" } */ + +extern void abort (void); +static void bar (); + +void +foo () +{ + bar (1); +} + +static void +bar (double i) +{ + if (i) + abort (); +} |