struct OS {
    SamplerState ss;
    float a;
    Texture2D tex;
};

SamplerState gss;
SamplerState gss2;
Texture2D gtex;

float4 osCall(OS s)
{
    return s.a * s.tex.Sample(s.ss, float2(0.2, 0.3));
}

float4 main() : SV_TARGET0
{
    OS os;
    os.ss = gss2;
    os.ss = gss;
    os.tex = gtex;
    os.a = 3.0;

    // this should give an error
    //SamplerState localss;
    //localss = gss2;

    return osCall(os);
}
