From cc1b96d91d8875bf727079d58fbf78af1135f505 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 30 Dec 2024 23:39:07 -0800 Subject: Check mismatching method parameter direction against interface declaration. (#5964) --- tests/language-feature/modules/wrapper-inout.slang | 29 ++++++++++++++++++++++ .../modules/wrapper-property.slang | 24 ++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 tests/language-feature/modules/wrapper-inout.slang create mode 100644 tests/language-feature/modules/wrapper-property.slang (limited to 'tests/language-feature/modules') diff --git a/tests/language-feature/modules/wrapper-inout.slang b/tests/language-feature/modules/wrapper-inout.slang new file mode 100644 index 000000000..5b7b9fbce --- /dev/null +++ b/tests/language-feature/modules/wrapper-inout.slang @@ -0,0 +1,29 @@ +//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK): -output-using-type + +public interface ITest { + public int testDir(inout int a); +}; + +public struct TestImpl : ITest { + public int testDir(inout int a) { + int oldA = a; + a = 5; + return a; + } +} + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=output +RWStructuredBuffer output; + +public struct Test : ITest = TestImpl; + +[shader("compute")] +[numthreads(1,1,1)] +void computeMain() +{ + Test data; + int a = 516; + int b = data.testDir(a); + // CHECK: 5 + output[0] = b; +} \ No newline at end of file diff --git a/tests/language-feature/modules/wrapper-property.slang b/tests/language-feature/modules/wrapper-property.slang new file mode 100644 index 000000000..cfd9798b7 --- /dev/null +++ b/tests/language-feature/modules/wrapper-property.slang @@ -0,0 +1,24 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv + +//CHECK: OpEntryPoint + +public interface ITest { + public property int val; +}; + +public struct TestImpl : ITest { + public int val; +} + +public struct Test : ITest = TestImpl; + +StructuredBuffer data; +RWStructuredBuffer output; + +[shader("compute")] +[numthreads(1,1,1)] +void computeMain() +{ + int val = data[0].val; + output[0] = val; +} \ No newline at end of file -- cgit v1.2.3