diff options
| author | Yong He <yonghe@outlook.com> | 2025-06-12 07:57:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-12 07:57:42 -0700 |
| commit | 4ae6e9d8b7790d827ca9edd729ad94f38a0c73de (patch) | |
| tree | 1aad23cae09dacf9d3377d040cbc9ac84b48675e /tests | |
| parent | 7dad68f869502e5c0ab32c12cbf8db866e020713 (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')
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; |
