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: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org CC: hubi...@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.