/* Test qualifier discard of typeof for atomic types. */ /* { dg-do compile } */ /* { dg-options "-std=c11" } */ /* Check that the qualifiers are discarded for atomic types. */ extern int i; extern int * p; extern int _Atomic const ci; extern __typeof (ci) i; extern int _Atomic volatile vi; extern __typeof (vi) i; extern int * _Atomic restrict ri; extern __typeof (ri) p; void f(void) { __auto_type aci = ci; int *paci = &aci; __auto_type avi = vi; int *pavi = &avi; __auto_type ari = ri; int **pari = &ari; } /* Check that the qualifiers are preserved for non-atomic types. */ extern int const j; extern int volatile k; extern int * restrict q; extern int const nci; extern __typeof (nci) j; extern int volatile nvi; extern __typeof (nvi) k; extern int * restrict nri; extern __typeof (nri) q; void g(void) { __auto_type aci = nci; int const *paci = &aci; __auto_type avi = nvi; int volatile *pavi = &avi; __auto_type ari = nri; int * restrict *pari = &ari; }