1/* { dg-do run } */
2
3extern void _exit(int);
4extern int strcmp(const char *, const char *);
5
6typedef struct Vec {
7 double xv[10], yv[5];
8 float fscal;
9 int z;
10} xyz_t ;
11
12typedef struct {
13  float fscalar;
14  double dscalar;
15  xyz_t dv;
16  int iscalar;
17  long ln;
18  long long lln;
19} anonymous;
20
21const char *enc = @encode(xyz_t);
22const char *enc2 = @encode(anonymous);
23
24#ifdef __LP64__
25#define L "q"
26#else
27#define L "l"
28#endif
29
30int main(void) {
31  const char *encode = @encode(long);
32
33  if (strcmp (encode, L))
34    _exit(-(__LINE__));
35
36  if (strcmp (enc, "{Vec=[10d][5d]fi}"))
37    _exit(-(__LINE__));
38
39  if (strcmp (enc2, "{?=fd{Vec=[10d][5d]fi}i" L "q}"))
40    _exit(-(__LINE__));
41
42  return 0;
43}
44