1617a3babSopenharmony_ci#version 130 2617a3babSopenharmony_ci 3617a3babSopenharmony_ciuniform vec4 bigColor; 4617a3babSopenharmony_civarying vec4 BaseColor; 5617a3babSopenharmony_ciuniform float d; 6617a3babSopenharmony_ci 7617a3babSopenharmony_cifloat h = 0.0; 8617a3babSopenharmony_ci 9617a3babSopenharmony_cifloat foo(vec4 bar) 10617a3babSopenharmony_ci{ 11617a3babSopenharmony_ci return bar.x + bar.y; 12617a3babSopenharmony_ci} 13617a3babSopenharmony_ci 14617a3babSopenharmony_civoid bar() 15617a3babSopenharmony_ci{ 16617a3babSopenharmony_ci} 17617a3babSopenharmony_ci 18617a3babSopenharmony_cifloat unreachableReturn() 19617a3babSopenharmony_ci{ 20617a3babSopenharmony_ci if (d < 4.2) 21617a3babSopenharmony_ci return 1.2; 22617a3babSopenharmony_ci else 23617a3babSopenharmony_ci return 4.5; 24617a3babSopenharmony_ci // might be another return inserted here by builders, has to be correct type 25617a3babSopenharmony_ci} 26617a3babSopenharmony_ci 27617a3babSopenharmony_cifloat missingReturn() 28617a3babSopenharmony_ci{ 29617a3babSopenharmony_ci if (d < 4.5) { 30617a3babSopenharmony_ci h = d; 31617a3babSopenharmony_ci return 3.9; 32617a3babSopenharmony_ci } 33617a3babSopenharmony_ci} 34617a3babSopenharmony_ci 35617a3babSopenharmony_civoid main() 36617a3babSopenharmony_ci{ 37617a3babSopenharmony_ci vec4 color = vec4(foo(BaseColor)); 38617a3babSopenharmony_ci 39617a3babSopenharmony_ci bar(); 40617a3babSopenharmony_ci float f = unreachableReturn(); 41617a3babSopenharmony_ci float g = missingReturn(); 42617a3babSopenharmony_ci 43617a3babSopenharmony_ci gl_FragColor = color * f * h; 44617a3babSopenharmony_ci} 45