diff options
| -rw-r--r-- | source/slang/slang-check-expr.cpp | 2 | ||||
| -rw-r--r-- | tests/bugs/gh-3727.slang | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp index 8b6fe76c7..ea6afdc1d 100644 --- a/source/slang/slang-check-expr.cpp +++ b/source/slang/slang-check-expr.cpp @@ -1424,6 +1424,8 @@ namespace Slang if (!funcDeclRefExpr) return nullptr; auto funcDeclRef = getDeclRef(m_astBuilder, funcDeclRefExpr); + if (!funcDeclRef) + return nullptr; auto intrinsicMod = funcDeclRef.getDecl()->findModifier<IntrinsicOpModifier>(); auto implicitCast = funcDeclRef.getDecl()->findModifier<ImplicitConversionModifier>(); if (!intrinsicMod && !implicitCast) diff --git a/tests/bugs/gh-3727.slang b/tests/bugs/gh-3727.slang new file mode 100644 index 000000000..89480d146 --- /dev/null +++ b/tests/bugs/gh-3727.slang @@ -0,0 +1,10 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv -stage compute -entry main + +// CHECK: undefined identifier + +[shader("compute")] +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + const uint index = does_not_exist(); +}
\ No newline at end of file |
