summaryrefslogtreecommitdiff
path: root/tests/diagnostics
diff options
context:
space:
mode:
Diffstat (limited to 'tests/diagnostics')
-rw-r--r--tests/diagnostics/void-function-returning-value.slang25
-rw-r--r--tests/diagnostics/void-function-returning-value.slang.expected7
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/diagnostics/void-function-returning-value.slang b/tests/diagnostics/void-function-returning-value.slang
new file mode 100644
index 000000000..558e37dbc
--- /dev/null
+++ b/tests/diagnostics/void-function-returning-value.slang
@@ -0,0 +1,25 @@
+// void-function-returning-value.slang
+
+// Confirm that we diagnose a `void` function that returns a value.
+
+//DIAGNOSTIC_TEST:SIMPLE:-stage compute -entry main -target dxbc
+
+void good()
+{
+ // Explicit cast to `void` is okay.
+ return (void)1;
+}
+
+void bad()
+{
+ // Implicit cast to `void` is not allowed.
+ return 1;
+}
+
+[numthreads(1, 1, 1)]
+void main(
+ uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ good();
+ bad();
+} \ No newline at end of file
diff --git a/tests/diagnostics/void-function-returning-value.slang.expected b/tests/diagnostics/void-function-returning-value.slang.expected
new file mode 100644
index 000000000..a94132971
--- /dev/null
+++ b/tests/diagnostics/void-function-returning-value.slang.expected
@@ -0,0 +1,7 @@
+result code = -1
+standard error = {
+tests/diagnostics/void-function-returning-value.slang(16): error 30019: expected an expression of type 'void', got 'int'
+tests/diagnostics/void-function-returning-value.slang(16): note: explicit conversion from 'int' to 'void' is possible
+}
+standard output = {
+}