From 5d078d962e124e24ac7877cb29131dab794d7df9 Mon Sep 17 00:00:00 2001 From: Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> Date: Thu, 7 Sep 2023 20:04:41 -0400 Subject: Fix compiler crashing when `[BackwardDerivativeOf(fn)]` refers to an unresolved `fn` (#3191) * Fix compiler crashing on unresolved decl-ref * Update autodiff-custom-diff-unresolved.slang --------- Co-authored-by: Yong He --- .../autodiff-custom-diff-unresolved.slang | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/diagnostics/autodiff-custom-diff-unresolved.slang (limited to 'tests/diagnostics') diff --git a/tests/diagnostics/autodiff-custom-diff-unresolved.slang b/tests/diagnostics/autodiff-custom-diff-unresolved.slang new file mode 100644 index 000000000..0ca055b59 --- /dev/null +++ b/tests/diagnostics/autodiff-custom-diff-unresolved.slang @@ -0,0 +1,23 @@ +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): + +// Simple check to see that the compiler returns an error message if the +// custom derivative definition points to an undefined function. +// + +void __d_f(float x, float.Differential dout) +{ +} + +[BackwardDerivative(__d_g)] +float f(float x) +{ + // CHECK: tests/diagnostics/autodiff-custom-diff-unresolved.slang([[@LINE-3]]): error 30015: undefined identifier '__d_g'. + // CHECK-NEXT: [BackwardDerivative(__d_g)] + return x * x; +} + +float main(float x) +{ + DifferentialPair dpx = diffPair(x, 1.f); + bwd_diff(f)(dpx, 1.f); +} \ No newline at end of file -- cgit v1.2.3