URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [pr42231.c] - Rev 688
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; }