blob: 99c38499631eea503ad49dc84ccacd4166fa51f9 [file] [log] [blame]
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'
*%%*/