summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-06-12 07:57:42 -0700
committerGitHub <noreply@github.com>2025-06-12 07:57:42 -0700
commit4ae6e9d8b7790d827ca9edd729ad94f38a0c73de (patch)
tree1aad23cae09dacf9d3377d040cbc9ac84b48675e /tests
parent7dad68f869502e5c0ab32c12cbf8db866e020713 (diff)
Diagnose on use of struct inheritance. (#7419)
* Diagnose on use of struct inheritance. * fix test. * Fix tests. * fix. --------- Co-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/diagnostics/inheritance-1.slang13
-rw-r--r--tests/diagnostics/inheritance-2.slang10
-rw-r--r--tests/hlsl-intrinsic/size-of/align-of.slang2
-rw-r--r--tests/hlsl-intrinsic/size-of/size-of.slang1
-rw-r--r--tests/initializer-list/struct-inherit.slang2
-rw-r--r--tests/language-feature/inheritance/derived-struct-init-list.slang2
-rw-r--r--tests/language-feature/inheritance/struct-inherit-interface-requirement.slang1
-rw-r--r--tests/language-feature/inheritance/struct-inheritance-imported.slang2
-rw-r--r--tests/language-feature/inheritance/struct-inheritance.slang2
-rw-r--r--tests/language-feature/initializer-lists/inheritance-generic.slang3
-rw-r--r--tests/language-feature/struct-field-initializers/struct-field-initializer-extension-inheritance.slang2
-rw-r--r--tests/language-feature/struct-field-initializers/struct-field-initializer-inherited-chain.slang3
-rw-r--r--tests/language-feature/struct-field-initializers/struct-field-initializer-init-inheritance-write-to-same.slang3
-rw-r--r--tests/language-feature/struct-field-initializers/struct-field-initializer-static.slang3
14 files changed, 48 insertions, 1 deletions
diff --git a/tests/diagnostics/inheritance-1.slang b/tests/diagnostics/inheritance-1.slang
new file mode 100644
index 000000000..c811623d8
--- /dev/null
+++ b/tests/diagnostics/inheritance-1.slang
@@ -0,0 +1,13 @@
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK):
+
+// Tests that we will diagnose a warning on struct inheritance being unstable
+// before Slang 2026.
+
+#lang 2025
+
+struct Base {}
+
+//CHECK: ([[# @LINE+1]]): warning 30816:
+struct Derived : Base {}
+
+struct Base1 {} \ No newline at end of file
diff --git a/tests/diagnostics/inheritance-2.slang b/tests/diagnostics/inheritance-2.slang
new file mode 100644
index 000000000..6b1bcfaff
--- /dev/null
+++ b/tests/diagnostics/inheritance-2.slang
@@ -0,0 +1,10 @@
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK):
+
+// Tests that we will diagnose an error on struct inheritance in language 2026 or later.
+
+#lang 2026
+
+struct Base {}
+
+//CHECK: ([[# @LINE+1]]): error 30811:
+struct Derived : Base {}
diff --git a/tests/hlsl-intrinsic/size-of/align-of.slang b/tests/hlsl-intrinsic/size-of/align-of.slang
index c5be345c8..537949375 100644
--- a/tests/hlsl-intrinsic/size-of/align-of.slang
+++ b/tests/hlsl-intrinsic/size-of/align-of.slang
@@ -7,6 +7,8 @@
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
+#pragma warning(disable:30816)
+
RWStructuredBuffer<int> outputBuffer;
enum Enum : int8_t
diff --git a/tests/hlsl-intrinsic/size-of/size-of.slang b/tests/hlsl-intrinsic/size-of/size-of.slang
index fc531bc4e..965e0a4e5 100644
--- a/tests/hlsl-intrinsic/size-of/size-of.slang
+++ b/tests/hlsl-intrinsic/size-of/size-of.slang
@@ -1,3 +1,4 @@
+#pragma warning(disable:30816)
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute -shaderobj
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
diff --git a/tests/initializer-list/struct-inherit.slang b/tests/initializer-list/struct-inherit.slang
index 71487a74f..642fb8f54 100644
--- a/tests/initializer-list/struct-inherit.slang
+++ b/tests/initializer-list/struct-inherit.slang
@@ -3,6 +3,8 @@
//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=BUF):-cpu -compute -entry computeMain
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-dx12 -use-dxil -compute -entry computeMain
+#pragma warning(disable:30816)
+
//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/language-feature/inheritance/derived-struct-init-list.slang b/tests/language-feature/inheritance/derived-struct-init-list.slang
index 51d3a9b6d..213e5ee8e 100644
--- a/tests/language-feature/inheritance/derived-struct-init-list.slang
+++ b/tests/language-feature/inheritance/derived-struct-init-list.slang
@@ -7,6 +7,8 @@
// an empty initializer list) is still possible
// when using `struct` inheritance.
+#pragma warning(disable:30816)
+
struct Base
{
int a = 1;
diff --git a/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang b/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang
index 84446aec3..c6d30ed91 100644
--- a/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang
+++ b/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang
@@ -5,6 +5,7 @@
// Test that a `struct` type can use an inherited
// member to satisfy an interface requirement.
+#pragma warning(disable:30816)
interface ITweak
{
diff --git a/tests/language-feature/inheritance/struct-inheritance-imported.slang b/tests/language-feature/inheritance/struct-inheritance-imported.slang
index 16816ec97..b3399eaeb 100644
--- a/tests/language-feature/inheritance/struct-inheritance-imported.slang
+++ b/tests/language-feature/inheritance/struct-inheritance-imported.slang
@@ -1,6 +1,6 @@
//TEST_IGNORE_FILE:
// struct-inheritance-imported.slang
-
+#pragma warning(disable:30816)
public struct Base
{
public int a;
diff --git a/tests/language-feature/inheritance/struct-inheritance.slang b/tests/language-feature/inheritance/struct-inheritance.slang
index d1611ddfc..046a3f6b2 100644
--- a/tests/language-feature/inheritance/struct-inheritance.slang
+++ b/tests/language-feature/inheritance/struct-inheritance.slang
@@ -6,6 +6,8 @@
// Test that we can define a `struct` type
// that inherits from another `struct`.
+#pragma warning(disable:30816)
+
struct Base
{
int a;
diff --git a/tests/language-feature/initializer-lists/inheritance-generic.slang b/tests/language-feature/initializer-lists/inheritance-generic.slang
index d5b923afe..71de21c47 100644
--- a/tests/language-feature/initializer-lists/inheritance-generic.slang
+++ b/tests/language-feature/initializer-lists/inheritance-generic.slang
@@ -1,6 +1,9 @@
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUFFER):-shaderobj -vk
//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=BUFFER):-shaderobj
+#pragma warning(disable:30816)
+
+
struct Base<let ND:int>
{
int a = 1;
diff --git a/tests/language-feature/struct-field-initializers/struct-field-initializer-extension-inheritance.slang b/tests/language-feature/struct-field-initializers/struct-field-initializer-extension-inheritance.slang
index 4af5f2847..47858e59c 100644
--- a/tests/language-feature/struct-field-initializers/struct-field-initializer-extension-inheritance.slang
+++ b/tests/language-feature/struct-field-initializers/struct-field-initializer-extension-inheritance.slang
@@ -1,6 +1,8 @@
//TEST:SIMPLE(filecheck=CHECK): -target hlsl -stage compute -entry computeMain
RWStructuredBuffer<int> outputBuffer;
+#pragma warning(disable:30816)
+
//CHECK: error 30851
struct DefaultStructNoInit_base
diff --git a/tests/language-feature/struct-field-initializers/struct-field-initializer-inherited-chain.slang b/tests/language-feature/struct-field-initializers/struct-field-initializer-inherited-chain.slang
index e6f856a21..c1de40b3c 100644
--- a/tests/language-feature/struct-field-initializers/struct-field-initializer-inherited-chain.slang
+++ b/tests/language-feature/struct-field-initializers/struct-field-initializer-inherited-chain.slang
@@ -3,6 +3,9 @@
//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=BUF):-cpu -compute -entry computeMain
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-dx12 -use-dxil -compute -entry computeMain
+#pragma warning(disable:30816)
+
+
//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/language-feature/struct-field-initializers/struct-field-initializer-init-inheritance-write-to-same.slang b/tests/language-feature/struct-field-initializers/struct-field-initializer-init-inheritance-write-to-same.slang
index eff3595f1..e11379cf3 100644
--- a/tests/language-feature/struct-field-initializers/struct-field-initializer-init-inheritance-write-to-same.slang
+++ b/tests/language-feature/struct-field-initializers/struct-field-initializer-init-inheritance-write-to-same.slang
@@ -3,6 +3,9 @@
//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=BUF):-cpu -compute -entry computeMain
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-dx12 -use-dxil -compute -entry computeMain
+#pragma warning(disable:30816)
+
+
//TEST_INPUT:ubuffer(data=[0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/language-feature/struct-field-initializers/struct-field-initializer-static.slang b/tests/language-feature/struct-field-initializers/struct-field-initializer-static.slang
index d6f9d3612..97ebce04e 100644
--- a/tests/language-feature/struct-field-initializers/struct-field-initializer-static.slang
+++ b/tests/language-feature/struct-field-initializers/struct-field-initializer-static.slang
@@ -3,6 +3,9 @@
//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=BUF):-cpu -compute -entry computeMain
//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-dx12 -use-dxil -compute -entry computeMain
+#pragma warning(disable:30816)
+
+
//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;