// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s -fcxx-exceptions -triple=x86_64-linux-gnu
// RUN: %clang_cc1 -fsyntax-only -std=c++20 -verify %s -fcxx-exceptions -triple=x86_64-linux-gnu
using size_t = decltype;
int &;
double &;
double &i1 = "foo"_x1;
using char8 = float;
float &;
using char8 = double;
char8 &i2 = u8"foo"_x1;
double &i3 = L"foo"_x1; // expected-error {{no matching literal operator for call to 'operator""_x1' with arguments of types 'const wchar_t *' and 'unsigned long'}}
char &;
char &i4 = L"foo"_x1; // ok
double &i5 = R"(foo)"_x1; // ok
char8 &i6 = u\
8\
R\
"(foo)"\
_\
x\
1; // ok
;
// Check the produced contents are correct.
constexpr const decltype &operator""
static_assert;
float &;
void
double &;
void
float &;
double &;
void
;
// expected-note {{because 'X<5>{}.size == 4' (5 == 4) evaluated to false}}
void ; // expected-note {{constraints not satisfied}}
void ;
struct Y ;
float &;
void ; // expected-note {{deleted here}}
void