From 19c6e97593d60ab857dff319197816d1b841c79b Mon Sep 17 00:00:00 2001 From: pawelflisikowski Date: Tue, 6 Aug 2024 06:44:19 +0000 Subject: [PATCH] Change cast type in WIAnalysis Change 'cast' to 'dyn_cast' and check for null pointer. --- IGC/Compiler/CISACodeGen/WIAnalysis.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/IGC/Compiler/CISACodeGen/WIAnalysis.cpp b/IGC/Compiler/CISACodeGen/WIAnalysis.cpp index f5168a2bda6b..5689c9c37cd4 100644 --- a/IGC/Compiler/CISACodeGen/WIAnalysis.cpp +++ b/IGC/Compiler/CISACodeGen/WIAnalysis.cpp @@ -1538,9 +1538,16 @@ WIAnalysis::WIDependancy WIAnalysisRunner::calculate_dep(const CallInst* inst) if (intrinsic_name == llvm_input || intrinsic_name == llvm_shaderinputvec) { - e_interpolation mode = (e_interpolation)cast(inst->getOperand(1))->getZExtValue(); - if (mode != EINTERPOLATION_CONSTANT - ) + if (auto* CI = dyn_cast(inst->getOperand(1))) + { + e_interpolation mode = (e_interpolation)CI->getZExtValue(); + if (mode != EINTERPOLATION_CONSTANT + ) + { + return WIAnalysis::RANDOM; + } + } + else { return WIAnalysis::RANDOM; }