28 lines
933 B
Plaintext
28 lines
933 B
Plaintext
|
|
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'
|
||
|
|
*%%*/
|