__auto_type a = 5; __extension__ __auto_type a1 = 5;
#pragma clang diagnostic ignored "-Wgnu-auto-type"
__auto_type b = 5.0;
__auto_type c = &b;
__auto_type d = (struct {int a;}) {5};
_Static_assert(__builtin_types_compatible_p(__typeof(a), int), "");
__auto_type e = e;
struct s { __auto_type a; };
__auto_type f = 1, g = 1.0;
__auto_type h() {}
int i() {
struct bitfield { int field:2; };
__auto_type j = (struct bitfield){1}.field;
}
int k(l)
__auto_type l; {}
void Issue53652(void) {
const __auto_type cat = a;
const __auto_type pcat = &a;
volatile __auto_type vat = a;
volatile __auto_type pvat = &a;
restrict __auto_type rat = &a;
_Atomic __auto_type aat1 = a;
_Atomic __auto_type paat = &a;
_Atomic(__auto_type) aat2 = a;
_Static_assert(__builtin_types_compatible_p(__typeof(cat), const int), "");
_Static_assert(__builtin_types_compatible_p(const int, __typeof(cat)), "");
_Static_assert(__builtin_types_compatible_p(__typeof(pcat), int *const), "");
_Static_assert(__builtin_types_compatible_p(int *const, __typeof(pcat)), "");
_Static_assert(__builtin_types_compatible_p(__typeof(vat), volatile int), "");
_Static_assert(__builtin_types_compatible_p(volatile int, __typeof(vat)), "");
_Static_assert(__builtin_types_compatible_p(__typeof(pvat), int *volatile), "");
_Static_assert(__builtin_types_compatible_p(int *volatile, __typeof(pvat)), "");
_Static_assert(__builtin_types_compatible_p(__typeof(rat), int *restrict), "");
_Static_assert(__builtin_types_compatible_p(int *restrict, __typeof(rat)), "");
_Static_assert(__builtin_types_compatible_p(__typeof(aat1), _Atomic int), "");
_Static_assert(__builtin_types_compatible_p(_Atomic int, __typeof(aat1)), "");
_Static_assert(__builtin_types_compatible_p(__typeof(paat), _Atomic(int *)), "");
_Static_assert(__builtin_types_compatible_p(_Atomic(int *), __typeof(paat)), "");
(void)_Generic(cat, int : 0);
(void)_Generic(pcat, int * : 0);
(void)_Generic(vat, int : 0);
(void)_Generic(pvat, int * : 0);
(void)_Generic(rat, int * : 0);
(void)_Generic(aat1, int : 0);
(void)_Generic(paat, int * : 0);
__auto_type i = 12;
__auto_type f = 1.2f;
(void)_Generic(a, __typeof__(i) : 0, __typeof__(f) : 1);
(void)_Generic(a,
__typeof__(i) : 0, __typeof__(a) : 1); }
void Issue55702(void) {
void *ptr = 0;
__auto_type v = ptr;
(void)_Generic(v, long double : 0, double : 0, default : 1); _Static_assert(_Generic(v, long double : 0, default : 1) == 1, "fail");
}