source: tests/typedefRedef.cfa @ cb69fba

ADTast-experimental
Last change on this file since cb69fba was 1d61b67, checked in by Thierry Delisle <tdelisle@…>, 3 years ago

Added attribute case to typedef replacement test.

  • Property mode set to 100644
File size: 1.3 KB
RevLine 
[70529dc]1typedef volatile struct Foo FooInterm;
2typedef const FooInterm Foo;
3#ifdef ERR1
4typedef struct Foo Foo;
5#endif
6
7typedef int ** pt;
8typedef int ** pt;
9
10#ifdef __CFA__
11extern "C" {
12#endif
13typedef int __io_read_fn ( char buf);
14typedef int __io_write_fn ( const char buf);
15
16
17__io_read_fn read;
18__io_write_fn write;
19#ifdef __CFA__
20}
21#endif
22
23int sz;
24typedef int FUNC(int, ...);
25typedef int FUNC(int, ...);
26
27typedef int ARR[];
28typedef int ARR[];
[66812dd]29#ifdef ERR1
30// if a typedef has an array dimension, it can only be redefined to the same dimension
[70529dc]31typedef int ARR[2];
[66812dd]32#endif
[70529dc]33
34typedef int X;
35typedef int Y;
36typedef Y Y2;
37typedef X X2;
38
39typedef Y2 Z;
40typedef X2 Z;
41
42typedef Z X2;
43typedef int X2;
44typedef Z X2;
45typedef int X2;
46
[1d61b67]47X2 value  __attribute__((aligned(4 * sizeof(X2))));
48
49__attribute__((aligned(4 * sizeof(X2)))) struct rseq_cs {
50        int foo;
51};
52
[70529dc]53// xxx - this doesn't work yet due to parsing problems with generic types
54// #ifdef __CFA__
55// typedef forall(type T) void foo(T);
56// typedef forall(type T) void foo(T);
57// typedef forall(type S) void foo(S); // should be allowed to do this...
58// #endif
59
60int main() {
[66812dd]61        typedef int ARR[sz];
[70529dc]62
[66812dd]63        // can't redefine typedef which is VLA
[70529dc]64#if ERR1
[66812dd]65        typedef int ARR[sz];
[70529dc]66#endif
67
[66812dd]68        Foo * x;
69
70        typedef struct Bar Foo;
71        Foo * y;
[70529dc]72
[66812dd]73        typedef int *** pt;
[70529dc]74
[53692b3]75    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
[70529dc]76}
Note: See TracBrowser for help on using the repository browser.