source: tests/typedefRedef.cfa @ 474d610

arm-ehjacob/cs343-translationnew-ast-unique-expr
Last change on this file since 474d610 was 66812dd, checked in by Peter A. Buhr <pabuhr@…>, 12 months ago

convert tests to always print output (no empty .expect files)

  • Property mode set to 100644
File size: 1.2 KB
Line 
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[];
29#ifdef ERR1
30// if a typedef has an array dimension, it can only be redefined to the same dimension
31typedef int ARR[2];
32#endif
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
47// xxx - this doesn't work yet due to parsing problems with generic types
48// #ifdef __CFA__
49// typedef forall(type T) void foo(T);
50// typedef forall(type T) void foo(T);
51// typedef forall(type S) void foo(S); // should be allowed to do this...
52// #endif
53
54int main() {
55        typedef int ARR[sz];
56
57        // can't redefine typedef which is VLA
58#if ERR1
59        typedef int ARR[sz];
60#endif
61
62        Foo * x;
63
64        typedef struct Bar Foo;
65        Foo * y;
66
67        typedef int *** pt;
68
69        #pragma message( "Compiled" )                   // force non-empty .expect file
70}
Note: See TracBrowser for help on using the repository browser.