#include "test_static.isph"
struct Foo { float f; };

task void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
    float a = aFOO[programIndex];
    Foo foo[programCount+1];
    uniform int ind[programCount+1];
    for (uniform int i = 0; i < programCount+1; ++i) {
        foo[i].f = a;
        ind[i] = i+1;
    }
    #pragma ignore warning(perf) 
    ++foo[a].f;
    #pragma ignore warning(perf)
    RET[programIndex] = foo[ind[programIndex]].f;
}

task void result(uniform float RET[]) { RET[programIndex] = 2+programIndex; }
