summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorArielG-NV <159081215+ArielG-NV@users.noreply.github.com>2024-04-22 10:07:06 -0400
committerGitHub <noreply@github.com>2024-04-22 10:07:06 -0400
commit923ef7af304f2f118b0aee153bd50e054ebc50c9 (patch)
tree9cb2b161bf88040fb36239d476d39b7cda8933d1 /tests
parentc5b855d77f6cdcc1ecb5c24de98f28347700e3c8 (diff)
bit_cast & reinterpret warning if src->dst type not equally sized. (#3988)
* bit_cast & reinterpret warning if src->dst type not equally sized. bit_cast & reinterpret warning if src->dst type not equally sized. --------- Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/language-feature/bit-cast/narrowing-bit-cast-error.slang12
-rw-r--r--tests/language-feature/bit-cast/struct-bit-cast.slang6
-rw-r--r--tests/language-feature/bit-cast/widening-bit-cast-error.slang12
-rw-r--r--tests/language-feature/reinterpret/narrowing-reinterpret-warning.slang12
-rw-r--r--tests/language-feature/reinterpret/widening-reinterpret-warning.slang12
5 files changed, 49 insertions, 5 deletions
diff --git a/tests/language-feature/bit-cast/narrowing-bit-cast-error.slang b/tests/language-feature/bit-cast/narrowing-bit-cast-error.slang
new file mode 100644
index 000000000..0591144a9
--- /dev/null
+++ b/tests/language-feature/bit-cast/narrowing-bit-cast-error.slang
@@ -0,0 +1,12 @@
+//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -stage compute -entry computeMain
+
+uniform StructuredBuffer<uint64_t> in;
+uniform RWStructuredBuffer<uint32_t> out;
+
+//CHECK: error 41202{{.*}}8{{.*}}4
+
+[numthreads(4, 1, 1)]
+[shader("compute")]
+void computeMain() {
+ out[0] = bit_cast<uint32_t, uint64_t>(in[0]);
+} \ No newline at end of file
diff --git a/tests/language-feature/bit-cast/struct-bit-cast.slang b/tests/language-feature/bit-cast/struct-bit-cast.slang
index 5398f36c9..630efb1e0 100644
--- a/tests/language-feature/bit-cast/struct-bit-cast.slang
+++ b/tests/language-feature/bit-cast/struct-bit-cast.slang
@@ -47,11 +47,7 @@ struct Larger
int test1()
{
- Smaller s = {1};
- int v0 = bit_cast<Larger, Smaller>(s).y; // 0.
- Larger l = {1, 2};
- int v1 = bit_cast<Smaller, Larger>(l).s; // 1.
- return v0 + v1;
+ return 1;
}
diff --git a/tests/language-feature/bit-cast/widening-bit-cast-error.slang b/tests/language-feature/bit-cast/widening-bit-cast-error.slang
new file mode 100644
index 000000000..29dc5a4e1
--- /dev/null
+++ b/tests/language-feature/bit-cast/widening-bit-cast-error.slang
@@ -0,0 +1,12 @@
+//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -stage compute -entry computeMain
+
+uniform StructuredBuffer<uint32_t> in;
+uniform RWStructuredBuffer<uint64_t> out;
+
+//CHECK: error 41202{{.*}}4{{.*}}8
+
+[numthreads(4, 1, 1)]
+[shader("compute")]
+void computeMain() {
+ out[0] = bit_cast<uint64_t, uint32_t>(in[0]);
+} \ No newline at end of file
diff --git a/tests/language-feature/reinterpret/narrowing-reinterpret-warning.slang b/tests/language-feature/reinterpret/narrowing-reinterpret-warning.slang
new file mode 100644
index 000000000..98ed71165
--- /dev/null
+++ b/tests/language-feature/reinterpret/narrowing-reinterpret-warning.slang
@@ -0,0 +1,12 @@
+//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -stage compute -entry computeMain
+
+uniform StructuredBuffer<uint32_t[2]> in;
+uniform RWStructuredBuffer<uint32_t> out;
+
+// CHECK: warning 41203{{.*}}8{{.*}}4
+
+[numthreads(4, 1, 1)]
+[shader("compute")]
+void computeMain() {
+ out[0] = reinterpret<uint32_t>(in[0]);
+} \ No newline at end of file
diff --git a/tests/language-feature/reinterpret/widening-reinterpret-warning.slang b/tests/language-feature/reinterpret/widening-reinterpret-warning.slang
new file mode 100644
index 000000000..2f643cc3f
--- /dev/null
+++ b/tests/language-feature/reinterpret/widening-reinterpret-warning.slang
@@ -0,0 +1,12 @@
+//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -stage compute -entry computeMain
+
+uniform StructuredBuffer<uint32_t> in;
+uniform RWStructuredBuffer<uint32_t[2]> out;
+
+//CHECK: warning 41203{{.*}}4{{.*}}8
+
+[numthreads(4, 1, 1)]
+[shader("compute")]
+void computeMain() {
+ out[0] = reinterpret<uint32_t[2]>(in[0]);
+} \ No newline at end of file