float method3(float a) { return 1.0; } struct myContext { float method1() { return method2(); } float method2() { return method3(1.0); } float method3(float a) { return method4(a, a); } float method4(float a, float b) { return a + b + f; } float f; }; float4 main() : SV_TARGET0 { myContext context; context.f = 3.0; return (float4)context.method1(); }