Add function recursion testing to the link-time validation.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23309 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
44
Test/recurse1.vert
Normal file
44
Test/recurse1.vert
Normal file
@@ -0,0 +1,44 @@
|
||||
#version 330 core
|
||||
|
||||
void main() {}
|
||||
|
||||
float bar(int);
|
||||
|
||||
// direct recursion
|
||||
|
||||
void self()
|
||||
{
|
||||
self();
|
||||
}
|
||||
|
||||
// two-level recursion
|
||||
|
||||
void foo(float)
|
||||
{
|
||||
bar(2);
|
||||
}
|
||||
|
||||
float bar(int)
|
||||
{
|
||||
foo(4.2);
|
||||
|
||||
return 3.2;
|
||||
}
|
||||
|
||||
// four-level, out of order
|
||||
|
||||
void B();
|
||||
void D();
|
||||
void A() { B(); }
|
||||
void C() { D(); }
|
||||
void B() { C(); }
|
||||
void D() { A(); }
|
||||
|
||||
// high degree
|
||||
|
||||
void BT();
|
||||
void DT();
|
||||
void AT() { BT(); BT(); BT(); }
|
||||
void CT() { DT(); AT(); DT(); BT(); }
|
||||
void BT() { CT(); CT(); CT(); }
|
||||
void DT() { AT(); }
|
||||
Reference in New Issue
Block a user