// // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo // // The contents of this file are covered under the licence agreement in the // file "LICENCE" distributed with Cforall. // // functions.cfa -- // // Author : Peter A. Buhr // Created On : Wed Aug 17 08:39:58 2016 // Last Modified By : Peter A. Buhr // Last Modified On : Tue Mar 5 11:02:25 2024 // Update Count : 34 // // ANSI function definitions void h( void ) {} int f ( int ( void ), int ( int ), int (( void )), int (( int )), void g( void ) ) { (*g)(); g(); g = h; } int f1() {} int (f2()) {} int (*f3())() {} int * ((f4())) {} int ((*f5()))() {} int * f6() {} int * ( f7)() {} int ** f8() {} int * const * ( f9)() {} int (* f10())[] {} int (* f11())[][3] {} int ((* f12())[])[3] {} // "implicit int" otype specifier (not ANSI) fII1( int i ) {} const fII2( int i ) {} extern fII3( int i ) {} extern const fII4( int i ) {} * fII5() {} const * fII6() {} const long * fII7() {} static const long * fII8() {} const static long * fII9() {} // K&R function definitions fO1( i ) int i; {} int fO2( i ) int i; {} const fO3( i ) int i; {} extern fO4( i ) int i; {} extern const fO5( i ) int i; {} // Cforall extensions [] f(); [void] f(); [int] f(); [] f( int ); [void] f( int ); [int] f( int ); [] f() {} [void] fv() {} [int] f() {} [] f( int ) {} [void] fv( int ) {} [int] f( int ) {} [int x] f(); [] f( int x ); [void] fv( int x ); //[int x] f( int x ); //[int x] f() {} [] f2( int x ) {} [void] fv1( int x ) {} //[int x] f( int x ) {} [int, int x] f(); [] f( int, int x ); [void] fv( int, int x ); [int, int x] f( int, int x ); [int, int x] f() {} [] f( int, int x ) {} [void] fv( int, int x ) {} [int, int x] f( int, int x ) {} [int, int x, int] f(); [] f( int, int x, int ); [void] fv( int, int x, int ); [int, int x, int] f( int, int x, int ); [int, int x, int] f() {} [] f( int, int x, int ) {} [void] fv( int, int x, int ) {} [int, int x, int] f( int, int x, int ) {} [int, int x, * int y] f(); [] f( int, int x, * int y ); [void] fv( int, int x, * int y ); [int, int x, * int y] f( int, int x, * int y ); [int, int x, * int y] f() {} [] f( int, int x, * int y ) {} [void] fv( int, int x, * int y ) {} [int, int x, * int y] f( int, int x, * int y ) {} // function prototypes [ int ] f11( int ), f12(); // => int f11( int ), f12( void ); const double bar1(), bar2( int ), bar3( double ); // C version [const double] foo(), foo( int ), foo( double ) { return 3.0; } // CFA version struct S { int i; }; [S] rtn( int ) {} [int] f( int ( int, int p ), [int](int) ) { int (* (* pc )[][10])[][3]; * [][10] * [][3] int p; * [] * [int]( int ) p; } static const int * f1() {} static [ * const int ] f2() {} static inline [ const * int ] f3() {} static inline [ const [ * int, int ] ] f4() {} static [ const [ * int, const int ] ] f5() {} // unnamed parameter int f( int (), int * (), int ** (), int * const * (), int * const * const (), int ([]), int ([10]), int * ([]), int * ([10]), int ** ([]), int ** ([10]), int * const * ([]), int * const * ([10]), int * const * const ([]), int * const * const ([10]) ); int f( int (), int * (), int ** (), int * const * (), int * const * const (), int ([]), int ([10]), int * ([]), int * ([10]), int ** ([]), int ** ([10]), int * const * ([]), int * const * ([10]), int * const * const ([]), int * const * const ([10]) ) {} typedef int T; int f( T ( *f ), T t ) { T ( T ); } // errors //int f()[] {} //int (f[])() {} //int f[]() {} //int ((* f15())())[] {} // Local Variables: // // tab-width: 4 // // compile-command: "cfa functions.cfa" // // End: //