source: src/tests/functions.c @ ed0e67a

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since ed0e67a was e757af2, checked in by Thierry Delisle <tdelisle@…>, 8 years ago

renamed all tests to lower-case leading character

  • Property mode set to 100644
File size: 2.6 KB
Line 
1// ANSI function definitions
2
3void h(void) {}
4
5int f (
6        int (void),
7        int (int),
8        int ((void)),
9        int ((int)),
10        void g(void)
11        ) {
12        (*g)();
13        g();
14        g = h;
15}
16
17int f1() {}
18int (f2()) {}
19int (*f3())() {}
20int *((f4())) {}
21int ((*f5()))() {}
22int *f6() {}
23int *(f7)() {}
24int **f8() {}
25int * const *(f9)() {}
26int (*f10())[] {}
27int (*f11())[][3] {}
28int ((*f12())[])[3] {}
29
30// "implicit int" otype specifier (not ANSI)
31
32fII1( int i ) {}
33const fII2( int i ) {}
34extern fII3( int i ) {}
35extern const fII4( int i ) {}
36
37*fII5() {}
38const *fII6() {}
39const long *fII7() {}
40static const long *fII8() {}
41const static long *fII9() {}
42
43// K&R function definitions
44
45fO1( i ) int i; {}
46int fO2( i ) int i; {}
47const fO3( i ) int i; {}
48extern fO4( i ) int i; {}
49extern const fO5( i ) int i; {}
50
51// Cforall extensions
52
53[] f( );
54[int] f( );
55[] f(int);
56[int] f(int);
57[] f( ) {}
58[int] f( ) {}
59[] f(int) {}
60[int] f(int) {}
61
62[int x] f( );
63[] f(int x);
64[int x] f(int x);
65[int x] f( ) {}
66[] f(int x) {}
67[int x] f(int x) {}
68
69[int, int x] f( );
70[] f(int, int x);
71[int, int x] f(int, int x);
72[int, int x] f( ) {}
73[] f(int, int x) {}
74[int, int x] f(int, int x) {}
75
76[int, int x, int] f( );
77[] f(int, int x, int);
78[int, int x, int] f(int, int x, int);
79[int, int x, int] f( ) {}
80[] f(int, int x, int) {}
81[int, int x, int] f(int, int x, int) {}
82
83[int, int x, * int y] f( );
84[] f(int, int x, * int y);
85[int, int x, * int y] f(int, int x, * int y);
86[int, int x, * int y] f( ) {}
87[] f(int, int x, * int y) {}
88[int, int x, * int y] f(int, int x, * int y) {}
89
90[ int ] f11( int ), f12;  // => int f11( int ), f12( int );
91
92[int] f(
93        int ( int, int p ),
94        [int](int)
95        ) {
96        int (*(*p)[][10])[][3];
97        * [][10] * [][3] int p;
98        * [] * [int](int) p;
99}
100
101static const int *f1() {}
102static [ const int ] f2() {}
103static inline [ const * int ] f3() {}
104static inline [ const [ * int, int ] ] f4() {}
105static [ const [ * int, const int ] ] f5() {}
106
107// unnamed parameter
108
109int f(
110        int (),
111
112        int *(),
113        int **(),
114        int * const *(),
115        int * const * const (),
116
117        int ([]),
118        int ([10]),
119
120        int *([]),
121        int *([10]),
122        int **([]),
123        int **([10]),
124        int * const *([]),
125        int * const *([10]),
126        int * const * const ([]),
127        int * const * const ([10])
128        );
129
130int f(
131        int (),
132
133        int *(),
134        int **(),
135        int * const *(),
136        int * const * const (),
137
138        int ([]),
139        int ([10]),
140
141        int *([]),
142        int *([10]),
143        int **([]),
144        int **([10]),
145        int * const *([]),
146        int * const *([10]),
147        int * const * const ([]),
148        int * const * const ([10])
149        ) {
150}
151
152typedef int T;
153
154int f( T (*f), T t ) {
155        T (T);
156}
157
158// errors
159
160//int f()[] {}
161//int (f[])() {}
162//int f[]() {}
163//int ((*f15())())[] {}
164
165// Local Variables: //
166// tab-width: 4 //
167// End: //
Note: See TracBrowser for help on using the repository browser.