Răsfoiți Sursa

Fix a crash in impact analysis caused by functions with no definition bodies

Signed-off-by: Vivien Oddou <[email protected]>
Vivien Oddou 1 an în urmă
părinte
comite
01c349e22d
1 a modificat fișierele cu 6 adăugiri și 3 ștergeri
  1. 6 3
      src/AzslcReflection.cpp

+ 6 - 3
src/AzslcReflection.cpp

@@ -1194,9 +1194,12 @@ namespace AZ::ShaderCompiler
                     {
                         verboseCout << " " << concrete << " non-memoized. discovering cost\n";
                         funcInfo->m_costScore = 0;
-                        using AstFDef = azslParser::HlslFunctionDefinitionContext;
-                        AnalyzeImpact(polymorphic_downcast<AstFDef*>(funcInfo->m_defNode->parent)->block(),
-                                      funcInfo->m_costScore);  // recurse and cache
+                        if (funcInfo->m_defNode)  // undefined functions can't be explored
+                        {
+                            using AstFDef = azslParser::HlslFunctionDefinitionContext;
+                            AnalyzeImpact(polymorphic_downcast<AstFDef*>(funcInfo->m_defNode->parent)->block(),
+                                          funcInfo->m_costScore);  // recurse and cache
+                        }
                     }
                     scoreAccumulator += funcInfo->m_costScore;
                     verboseCout << " " << concrete << " cost score " << funcInfo->m_costScore << " added\n";