ZequanWu wrote: ``` $ cat a.cpp namespace std { template <int a> struct b { static const int c = a; }; template <bool, class d> using e = d; template <class f> struct p { using g = f; }; template <bool, class, class h> using i = p<h>::g; template <class> class initializer_list {}; template <class d> using j = __remove_pointer(d); template <class d> using k = j<d>; template <typename, typename> constexpr bool l = b<__is_base_of(int, int)>::c; template <bool m, typename n> using ab = e<m, n>; template <typename n, typename q> using o = ab<l<n, q>, n>; template <typename... ac> constexpr bool ad = (l<ac, int> && ...); template <typename...> struct u; template <typename... ac> using ae = u<ac...>::g; template <typename n> struct u<n> { using g = n; }; template <typename n, int> class t { public: t(initializer_list<n>); }; namespace ag { template <bool, typename...> struct D; template <typename... s> struct D<true, s...> { using ah = ae<k<s>...>; using g = i<0, ah, ah *>; }; } template <typename... s> using r = ag::D<ad<>, s...>::g; template <typename... s> t(s...) -> t<r<s...>, sizeof...(s)>; class v { public: template <typename n, typename an> o<n, int> *w(an &&); }; using ap = v; struct aq : ap { int *ar = w<int>(t{w<int>(int{})}); aq() {} } $ clang a.cpp [crash] ```
https://github.com/llvm/llvm-project/pull/87933 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits