// Constant test declaration

// value

int 0;
const int 0;
int 1;
const int 1;
struct { int i; } 0;
const struct { int i; } 1;

#ifdef DUPS

int 0;
const int 0;
int 1;
const int 1;
int (0), (1);
int ((0)), ((1));
const int 0, 1;
const int (0), (1);
struct { int i; } 0;
const struct { int i; } 1;

#endif // DUPS

#ifndef NEWDECL

// pointer

int *0, *1;
int * const (0), * const 1;
struct { int i; } *0;
const struct { int i; } *0;
int (*(* const x)), **0;

#ifdef DUPS

int *0, *1;
int *(0), *(1);
int (*0), (*1);
int ((*0)), ((*1));
int * const (0), * const 1;
int (* const 0), (* const 1);
int ((* const 0)), ((* const 1));
int (*(* const x)), *(*0);
int (*(* const x)), (*(*0));
struct { int i; } *0;
const struct { int i; } *0;
int (*(* const x)), **0;

#endif // DUPS

#else

// Cforall style

* int x, 0;
const * int x, 0;
* struct { int i; } 0;
const * struct { int i; } 0;
const * * int x, 0;

#ifdef DUPS

* int x, 0;
const * int x, 0;

#endif // DUPS

#endif // NEWDECL

int main() {
#ifndef NEWDECL
    int 1, * 0;
#else
    * int x, 0;
#endif // NEWDECL
}
