From 2c55d3736a3ee933adf684a146135d9086b8b94f Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 21 Apr 2020 17:16:22 -0400 Subject: Fix for a generic definition, followed by a declaration with target intrisic causing a crash (#1329) * * Make a 'definition' if a function has a body or a target intrinsic defined * Added test for this situation. * Fix tab. * Fix single-target-intrisic.slang expected output. Co-authored-by: Tim Foley --- tests/diagnostics/single-target-intrinsic.slang | 16 ++++++++++++++++ tests/diagnostics/single-target-intrinsic.slang.expected | 7 +++++++ 2 files changed, 23 insertions(+) create mode 100644 tests/diagnostics/single-target-intrinsic.slang create mode 100644 tests/diagnostics/single-target-intrinsic.slang.expected (limited to 'tests/diagnostics') diff --git a/tests/diagnostics/single-target-intrinsic.slang b/tests/diagnostics/single-target-intrinsic.slang new file mode 100644 index 000000000..e8ff0ed1a --- /dev/null +++ b/tests/diagnostics/single-target-intrinsic.slang @@ -0,0 +1,16 @@ +//DIAGNOSTIC_TEST(windows):SIMPLE: + + +T doThing(T in) +{ + return in; +} + +__target_intrinsic(hlsl, "doSomethingIntrinsically($0)") +T doThing(T in); + +void test() +{ + int a = 5; + int b = doThing(a); +} \ No newline at end of file diff --git a/tests/diagnostics/single-target-intrinsic.slang.expected b/tests/diagnostics/single-target-intrinsic.slang.expected new file mode 100644 index 000000000..82068f17d --- /dev/null +++ b/tests/diagnostics/single-target-intrinsic.slang.expected @@ -0,0 +1,7 @@ +result code = -1 +standard error = { +tests/diagnostics/single-target-intrinsic.slang(10): error 30201: function 'doThing' already has a body +tests/diagnostics/single-target-intrinsic.slang(4): note: see previous definition of 'doThing' +} +standard output = { +} -- cgit v1.2.3