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.

Reply via email to