diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/recurse1.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/recurse1.frag | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/recurse1.frag b/chromium/third_party/glslang/src/Test/recurse1.frag new file mode 100644 index 00000000000..447a8827d67 --- /dev/null +++ b/chromium/third_party/glslang/src/Test/recurse1.frag @@ -0,0 +1,48 @@ +#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 |