summaryrefslogtreecommitdiff
path: root/support/regression/tcc/03_struct.c
blob: fd7313383007767536256c1a2289fe77cb6db89e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
extern int printf(const char*, ...);

struct fred;

void fred$(struct fred* this)
{
    printf("~fred()\n");
}

struct __attribute__((__cleanup__(fred$))) fred
{
   int boris;
   int natasha;
};

int main()
{
    struct fred  __attribute__((__cleanup__(fred$))) bloggs;

   bloggs.boris = 12;
   bloggs.natasha = 34;

   printf("%d\n", bloggs.boris);
   printf("%d\n", bloggs.natasha);

   struct fred jones[2];
   jones[0].boris = 12;
   jones[0].natasha = 34;
   jones[1].boris = 56;
   jones[1].natasha = 78;

   printf("%d\n", jones[0].boris);
   printf("%d\n", jones[0].natasha);
   printf("%d\n", jones[1].boris);
   printf("%d\n", jones[1].natasha);

   return 0;
}