summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/diagnostics/implicit-cast-lvalue.slang15
-rw-r--r--tests/diagnostics/implicit-cast-lvalue.slang.expected7
2 files changed, 22 insertions, 0 deletions
diff --git a/tests/diagnostics/implicit-cast-lvalue.slang b/tests/diagnostics/implicit-cast-lvalue.slang
new file mode 100644
index 000000000..4bf3c13b0
--- /dev/null
+++ b/tests/diagnostics/implicit-cast-lvalue.slang
@@ -0,0 +1,15 @@
+//TEST:SIMPLE:
+
+// Passing an argument for an `out` parameter such
+// that implicit conversion would be required in
+// both directions.
+
+void a(out uint x)
+{
+ x = 0;
+}
+
+void b(int y)
+{
+ a(y);
+}
diff --git a/tests/diagnostics/implicit-cast-lvalue.slang.expected b/tests/diagnostics/implicit-cast-lvalue.slang.expected
new file mode 100644
index 000000000..e5685fc51
--- /dev/null
+++ b/tests/diagnostics/implicit-cast-lvalue.slang.expected
@@ -0,0 +1,7 @@
+result code = -1
+standard error = {
+tests/diagnostics/implicit-cast-lvalue.slang(14): error 30047: argument passed to parameter '0' must be l-value.
+tests/diagnostics/implicit-cast-lvalue.slang(14): note 30048: argument was implicitly cast from 'int' to 'uint', and Slang does not support using an implicit cast as an l-value
+}
+standard output = {
+}