// RUN: %clang_cc1 -verify %s -ftemplate-depth 2 template<int N> struct S { }; template<typename T> S<T() + T()> operator+(T, T); // expected-error {{instantiation exceeded maximum depth}} expected-note 2{{while substituting}} S<0> s; int k = s + s; // expected-note {{while substituting}}