http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47833
Summary: ICE during GC in gt_ggc_mx_pending_template Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org template <int> int foo () throw () { return 0; } int foo () { if (false) { #define A(N) foo<N> (); #define B(N) A(N##0) A(N##1) A(N##2) A(N##3) A(N##4) A(N##5) A(N##6) A(N##7) A(N##8) A(N##9) #define C(N) B(N##0) B(N##1) B(N##2) B(N##3) B(N##4) B(N##5) B(N##6) B(N##7) B(N##8) B(N##9) #define D(N) C(N##0) C(N##1) C(N##2) C(N##3) C(N##4) C(N##5) C(N##6) C(N##7) C(N##8) C(N##9) #define E(N) D(N##0) D(N##1) D(N##2) D(N##3) D(N##4) D(N##5) D(N##6) D(N##7) D(N##8) D(N##9) #define F(N) E(N##0) E(N##1) E(N##2) E(N##3) E(N##4) E(N##5) E(N##6) E(N##7) E(N##8) E(N##9) #define G(N) F(N##0) F(N##1) F(N##2) F(N##3) F(N##4) F(N##5) F(N##6) F(N##7) F(N##8) F(N##9) G(1) } return 0; } ICEs in 4.5/4.6, because the pending_templates list is too long and GC recurses on it.