// { dg-do compile }
// Contributed by Andrew Pinski <pinskia at gcc dot gnu dot org>
// PR c++/13810: ICE while parsing invalid default argument for a
// template template parameter.
struct X;
template<int> struct A {};
template<template<int> class = X > struct B1 {}; // { dg-error "as a default value" }
template<template<int> class = A<0> > struct B2 {}; // { dg-error "as a default value" }
template <typename T>
struct S {
template <template <typename> class = S> struct I1 {}; // { dg-error "as a default value" }
template <template <typename> class = ::S> struct I2 {};
};
syntax highlighted by Code2HTML, v. 0.9.1