#version 330 core

// cross-unit recursion

// two-level recursion

void cfoo(float);

float cbar(int)
{
	cfoo(4.2);

	return 3.2;
}

// four-level, out of order

void CA();
void CC();
void CB() { CC(); }
void CD() { CA(); }

// high degree

void CAT();
void CCT();
void CBT() { CCT(); CCT(); CCT(); }
void CDT() { CAT(); }