#version 330 core | |
// cross-unit recursion | |
void main() {} | |
// two-level recursion | |
float cbar(int); | |
void cfoo(float) | |
{ | |
cbar(2); | |
} | |
// four-level, out of order | |
void CB(); | |
void CD(); | |
void CA() { CB(); } | |
void CC() { CD(); } | |
// high degree | |
void CBT(); | |
void CDT(); | |
void CAT() { CBT(); CBT(); CBT(); } | |
void CCT() { CDT(); CDT(); CBT(); } | |
// not recursive | |
void norA() {} | |
void norB() { norA(); } | |
void norC() { norA(); } | |
void norD() { norA(); } | |
void norE() { norB(); } | |
void norF() { norB(); } | |
void norG() { norE(); } | |
void norH() { norE(); } | |
void norI() { norE(); } | |
// not recursive, but with a call leading into a cycle if ignoring direction | |
void norcA() { } | |
void norcB() { norcA(); } | |
void norcC() { norcB(); } | |
void norcD() { norcC(); norcB(); } // head of cycle | |
void norcE() { norcD(); } // lead into cycle |