// RUN: %clang_cc1 -std=c++20 -verify %s namespace PR47043 { template concept True = true; template concept AllTrue1 = True; // expected-error {{expression contains unexpanded parameter pack 'T'}} template concept AllTrue2 = (True && ...); static_assert(AllTrue2); } namespace PR47025 { template concept AllAddable1 = requires(T ...t) { (void(t + 1), ...); }; template concept AllAddable2 = (requires(T ...t) { (t + 1); } && ...); // expected-error {{requirement contains unexpanded parameter pack 't'}} template concept AllAddable3 = (requires(T t) { (t + 1); } && ...); template concept AllAddable4 = requires(T t) { (t + 1); }; // expected-error {{expression contains unexpanded parameter pack 'T'}} template concept AllAddable5 = requires(T t) { (void(t + 1), ...); }; // expected-error {{does not contain any unexpanded}} template concept AllAddable6 = (requires { (T() + 1); } && ...); template concept AllAddable7 = requires { (T() + 1); }; // expected-error {{expression contains unexpanded parameter pack 'T'}} static_assert(AllAddable1); static_assert(AllAddable3); static_assert(AllAddable6); static_assert(!AllAddable1); static_assert(!AllAddable3); static_assert(!AllAddable6); }