| struct S { float2 value; }; |
| |
| void testIn(in float2 a, in float2 b, in float2 c) { a = float2(1); } |
| void testOut(out float2 a, out float2 b, out float2 c) { a = float2(1); } |
| void testInout(inout float2 a, inout float2 b, inout float2 c) { a = float2(1); } |
| |
| void testSIn(in S a, in S b, in S c) { a.value = float2(1); } |
| void testSOut(out S a, out S b, out S c) { a.value = float2(1); } |
| void testSInout(inout S a, inout S b, inout S c) { a.value = float2(1); } |
| |
| void func(float2 p) { |
| testIn(p, p, p); |
| testOut(p, p, p); |
| testInout(p, p, p); |
| |
| S s; |
| testSIn(s, s, s); |
| testSOut(s, s, s); |
| testSInout(s, s, s); |
| } |
| |
| /*%%* |
| function 'testOut' never assigns a value to out parameter 'b' |
| function 'testOut' never assigns a value to out parameter 'c' |
| function 'testSOut' never assigns a value to out parameter 'b' |
| function 'testSOut' never assigns a value to out parameter 'c' |
| *%%*/ |