// Error:-mrtnd 200
// Success:-mrtnd 200

template <typename T>
struct A
{
	enum {value = T::non_existing};
};

template <int I>
struct B
{
	static const int value = B<I-1>::Value;
};

template <>
struct B<1>
{
};

void foo() 
{
	B<A<int>::value> b;
}
	
