// RUN: %clang_cc1 -std=c++2a -verify %s
constexpr bool is_same_v = false;
constexpr bool is_same_v<T, T> = true;
concept LargerThan = sizeof > size;
// expected-note@-1 2{{because 'sizeof(char) > 1U' (1 > 1) evaluated to false}}
// expected-note@-2 {{because 'sizeof(int) > 10U' (4 > 10) evaluated to false}}
// expected-note@-3 {{because 'sizeof(int) > 4U' (4 > 4) evaluated to false}}
concept Large = LargerThan<T, 1>;
// expected-note@-1 2{{because 'LargerThan<char, 1>' evaluated to false}}
Large auto
::Large auto
LargerThan<4> auto
// expected-error@-1{{deduced type 'int' does not satisfy 'LargerThan<4>'}}
::LargerThan<2> auto
Large auto void;
// expected-error@-1{{function with trailing return type must specify return type 'auto', not 'Large auto'}}
auto Large auto
X::Small auto
X::SmallerThan<5> auto