// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify
concept C1 = sizeof >= 4;
// sizeof(U) >= 4 [U = U (decltype(T))]
concept C2 = C1<Y, V>;
// sizeof(U) >= 4 [U = V (decltype(Y{}))]
constexpr int requires C2<int, W>
// sizeof(U) >= 4 [U = W (decltype(int{}))]
// expected-note@+1{{candidate function}}
constexpr int requires C1<1, X> && true
// sizeof(U) >= 4 [U = X (decltype(1))]
static_assert;
// expected-note@+1{{candidate function}}
constexpr int requires C2<long long, Z> && true
// sizeof(U) >= 4 [U = Z (decltype(long long{}))]
static_assert;
// expected-error@-1{{call to 'foo' is ambiguous}}