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"