#version 140

varying vec4 bigColor;
varying vec4 BaseColor;
varying float d;

float h = 0.0;

float foo(vec4 bar)
{
    return bar.x + bar.y;
}

void bar()
{
}

float unreachableReturn()
{
    if (d < 4.2)
        return 1.2;
    else
        return 4.5;
    // might be another return inserted here by builders, has to be correct type
}

float missingReturn()
{
    if (d < 4.5) {
        h = d;
        return 3.9;
    }
}

void main()
{
    vec4 color = vec4(foo(BaseColor));

    bar();
    float f = unreachableReturn();
    float g = missingReturn();
    
    gl_FragColor = color * f * h;
}
