This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/46535] New: [4.6 Regression] Endless loop during inlining
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 18 Nov 2010 10:31:56 +0000
- Subject: [Bug tree-optimization/46535] New: [4.6 Regression] Endless loop during inlining
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46535
Summary: [4.6 Regression] Endless loop during inlining
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: rguenth@gcc.gnu.org
CC: hubicka@gcc.gnu.org
Reducing PR46523 I run into
> gdb --args ./cc1plus -quiet -O2 -m32 -w -std=c++0x -o /dev/null 9793.ii
...
Program received signal SIGINT, Interrupt.
0x0000000000f9a39c in cgraph_decide_inlining_of_small_functions ()
at /space/rguenther/src/svn/trunk/gcc/ipa-inline.c:1178
1178 where = where->callers->caller;
(gdb) l
1173 where = edge->caller;
1174 while (where->global.inlined_to)
1175 {
1176 if (where->decl == edge->callee->decl)
1177 break;
1178 where = where->callers->caller;
1179 }
1180 if (where->global.inlined_to)
1181 {
1182 edge->inline_failed
(gdb) p where->callers->caller
$1 = (struct cgraph_node *) 0x7ffff4f99420
(gdb) p where
$2 = (struct cgraph_node *) 0x7ffff4f99420
(gdb) p where->global.inlined_to
$3 = (struct cgraph_node *) 0x7ffff4fb3420
thus, an endless loop. Maybe related to the original PR of course.
I will try to reduce this one as well as soon as reducing the other
one finished.