Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / recurse1.vert
1 #version 330 core\r
2 \r
3 void main() {}\r
4 \r
5 float bar(int);\r
6 \r
7 // direct recursion\r
8 \r
9 void self()\r
10 {\r
11     self();\r
12 }\r
13 \r
14 // two-level recursion\r
15 \r
16 void foo(float)\r
17 {\r
18         bar(2);\r
19 }\r
20 \r
21 float bar(int)\r
22 {\r
23         foo(4.2);\r
24 \r
25         return 3.2;\r
26 }\r
27 \r
28 // four-level, out of order\r
29 \r
30 void B();\r
31 void D();\r
32 void A() { B(); }\r
33 void C() { D(); }\r
34 void B() { C(); }\r
35 void D() { A(); }\r
36 \r
37 // high degree\r
38 \r
39 void BT();\r
40 void DT();\r
41 void AT() { BT(); BT(); BT(); }\r
42 void CT() { DT(); AT(); DT(); BT(); }\r
43 void BT() { CT(); CT(); CT(); }\r
44 void DT() { AT(); }\r