URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [pr42231.c] - Rev 308
Go to most recent revision | Compare with Previous | Blame | View Log
extern void abort (void); static max; static void __attribute__((noinline)) storemax (int i) { if (i > max) max = i; } static int CallFunctionRec(int (*fun)(int depth), int depth) { if (!fun(depth)) { return 0; } if (depth < 10) { CallFunctionRec(fun, depth + 1); } return 1; } static int CallFunction(int (*fun)(int depth)) { return CallFunctionRec(fun, 1) && !fun(0); } static int callback(int depth) { storemax (depth); return depth != 0; } int main() { CallFunction(callback); if (max != 10) abort (); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log