1struct S { float2 value; }; 2 3void testIn(in float2 a, in float2 b, in float2 c) { a = float2(1); } 4void testOut(out float2 a, out float2 b, out float2 c) { a = float2(1); } 5void testInout(inout float2 a, inout float2 b, inout float2 c) { a = float2(1); } 6 7void testSIn(in S a, in S b, in S c) { a.value = float2(1); } 8void testSOut(out S a, out S b, out S c) { a.value = float2(1); } 9void testSInout(inout S a, inout S b, inout S c) { a.value = float2(1); } 10 11void func(float2 p) { 12 testIn(p, p, p); 13 testOut(p, p, p); 14 testInout(p, p, p); 15 16 S s; 17 testSIn(s, s, s); 18 testSOut(s, s, s); 19 testSInout(s, s, s); 20} 21 22/*%%* 23function 'testOut' never assigns a value to out parameter 'b' 24function 'testOut' never assigns a value to out parameter 'c' 25function 'testSOut' never assigns a value to out parameter 'b' 26function 'testSOut' never assigns a value to out parameter 'c' 27*%%*/ 28