diff options
Diffstat (limited to 'tests/diagnostics/missing-return-target.slang')
| -rw-r--r-- | tests/diagnostics/missing-return-target.slang | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/diagnostics/missing-return-target.slang b/tests/diagnostics/missing-return-target.slang new file mode 100644 index 000000000..8fc65efd1 --- /dev/null +++ b/tests/diagnostics/missing-return-target.slang @@ -0,0 +1,29 @@ +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_NOT_SUPP): -entry computeMain -stage compute -target spirv +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_NOT_SUPP): -entry computeMain -stage compute -target glsl +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_NOT_SUPP): -entry computeMain -stage compute -target wgsl + +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_SUPP): +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_SUPP): -entry computeMain -stage compute -target hlsl +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_SUPP): -entry computeMain -stage compute -target metal +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_SUPP): -entry computeMain -stage compute -target cpp +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK_SUPP): -entry computeMain -stage compute -target cuda + +// Some compilation targets allow missing returns while some do not. +// This test ensures that either errors and warnings are emitted appropriately. + +RWStructuredBuffer<uint> out; + +// CHECK_NOT_SUPP: warning 41010: non-void function +// CHECK_NOT_SUPP: error 41009: non-void function + +// CHECK_SUPP: warning 41010: non-void function + +uint func() +{ +} + +[shader("compute")] +void computeMain() +{ + out[0] = func(); +} |
