1 // { dg-do compile { target c++20 } }
3 template <auto N> struct A {};
4 template <class,class> struct assert_same;
5 template <class T> struct assert_same<T,T> {};
7 #define TEQ(X,Y) static_assert(__is_same(A<(X)>,A<(Y)>))
8 #define TNEQ(X,Y) static_assert(!__is_same(A<(X)>,A<(Y)>))
12 constexpr U(int i): i(i) {}
13 constexpr U(unsigned u): j(u) {}
18 // Calling the other constructor initializes a different member with the same
19 // value. We need to distinguish these.
22 // { dg-final { scan-assembler "_Z1f1AIXtl1Udi1iLi0EEEE" } }
24 // { dg-final { scan-assembler "_Z1g1AIXtl1Udi1jLi0EEEE" } }