diff options
Diffstat (limited to 'tests')
3 files changed, 60 insertions, 0 deletions
diff --git a/tests/diagnostics/uninitialized-resource-type.slang b/tests/diagnostics/uninitialized-resource-type.slang new file mode 100644 index 000000000..4d5b8f5b3 --- /dev/null +++ b/tests/diagnostics/uninitialized-resource-type.slang @@ -0,0 +1,42 @@ +//DIAGNOSTIC_TEST:SIMPLE: -target hlsl -DTEST_1 +//DIAGNOSTIC_TEST:SIMPLE: -target hlsl -DTEST_2 + +SamplerState sampler; + +struct Foo +{ + bool sample_bar = false; +#ifdef TEST_1 + Texture2D<float4> bar = {}; +#elif defined(TEST_2) + Texture2D<float4> bar[2]; +#endif +}; + +struct Result +{ + float4 color = float4(0.0); +}; + +Result process(in Foo foo) +{ + Result result = {}; + + if (foo.sample_bar) { +#ifdef TEST_1 + result.color = foo.bar.Sample(sampler, float2(0.0, 0.0)); +#elif defined(TEST_2) + result.color = foo.bar[0].Sample(sampler, float2(0.0, 0.0)); +#endif + } + + return result; +} + +[shader("compute")] +[numthreads(8, 8, 1)] +float4 cs_main(uint3 thread_id : SV_DispatchThreadID) { + Foo foo; + const let result = process(foo); + return result.color; +} diff --git a/tests/diagnostics/uninitialized-resource-type.slang.1.expected b/tests/diagnostics/uninitialized-resource-type.slang.1.expected new file mode 100644 index 000000000..69b4f0ece --- /dev/null +++ b/tests/diagnostics/uninitialized-resource-type.slang.1.expected @@ -0,0 +1,9 @@ +result code = -1 +standard error = { +tests/diagnostics/uninitialized-resource-type.slang(40): warning 41016: use of uninitialized variable 'foo' + const let result = process(foo); + ^ +tests/diagnostics/uninitialized-resource-type.slang(40): error 56003: use of uninitialized opaque handle 'array<Texture2D,2>'. + const let result = process(foo); + ^ +} diff --git a/tests/diagnostics/uninitialized-resource-type.slang.expected b/tests/diagnostics/uninitialized-resource-type.slang.expected new file mode 100644 index 000000000..a74d7f9ff --- /dev/null +++ b/tests/diagnostics/uninitialized-resource-type.slang.expected @@ -0,0 +1,9 @@ +result code = -1 +standard error = { +tests/diagnostics/uninitialized-resource-type.slang(40): warning 41016: use of uninitialized variable 'foo' + const let result = process(foo); + ^ +tests/diagnostics/uninitialized-resource-type.slang(40): error 56003: use of uninitialized opaque handle 'Texture2D'. + const let result = process(foo); + ^ +} |
