From ca7bf79df3a3f5f4494912cb0572c36662755b9d Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 12 Apr 2023 22:58:22 -0700 Subject: Combine lookupWitness lowering with specialization. (#2794) --- source/slang/slang-ir-lower-generic-function.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source/slang/slang-ir-lower-generic-function.cpp') diff --git a/source/slang/slang-ir-lower-generic-function.cpp b/source/slang/slang-ir-lower-generic-function.cpp index e45b20563..12be27f07 100644 --- a/source/slang/slang-ir-lower-generic-function.cpp +++ b/source/slang/slang-ir-lower-generic-function.cpp @@ -28,14 +28,18 @@ namespace Slang auto genericParent = as(genericValue); SLANG_ASSERT(genericParent); SLANG_ASSERT(genericParent->getDataType()); - auto func = as(findGenericReturnVal(genericParent)); + auto genericRetVal = findGenericReturnVal(genericParent); + auto func = as(genericRetVal); if (!func) { // Nested generic functions are supposed to be flattened before entering // this pass. The reason we are still seeing them must be that they are // intrinsic functions. In this case we ignore the function. - SLANG_ASSERT(findInnerMostGenericReturnVal(genericParent) - ->findDecoration() != nullptr); + if (as(genericRetVal)) + { + SLANG_ASSERT(findInnerMostGenericReturnVal(genericParent) + ->findDecoration() != nullptr); + } return genericValue; } SLANG_ASSERT(func); -- cgit v1.2.3