Extended Description
The following compiles with gcc but does not with clang:
template<typename T>
void construct() {
T(0);
}
template<typename T>
void tester() {
struct d {
void test() {
construct<d>();
}
constexpr d(T b) : a(b) {}
T a;
};
}
int main() {
tester<int>();
}
link: https://godbolt.org/z/jd41rr
It fails with "fatal error: recursive template instantiation exceeded maximum depth of 1024"