diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-ir-use-uninitialized-values.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/source/slang/slang-ir-use-uninitialized-values.cpp b/source/slang/slang-ir-use-uninitialized-values.cpp index 9780d669a..1be43591a 100644 --- a/source/slang/slang-ir-use-uninitialized-values.cpp +++ b/source/slang/slang-ir-use-uninitialized-values.cpp @@ -377,21 +377,24 @@ namespace Slang } // Check ordinary instructions - for (auto inst = firstBlock->getFirstInst(); inst; inst = inst->getNextInst()) + for (auto block : func->getBlocks()) { - if (!isUninitializedValue(inst)) - continue; + for (auto inst = block->getFirstInst(); inst; inst = inst->getNextInst()) + { + if (!isUninitializedValue(inst)) + continue; - IRType* type = inst->getFullType(); - if (canIgnoreType(type, nullptr)) - continue; + IRType* type = inst->getFullType(); + if (canIgnoreType(type, nullptr)) + continue; - auto loads = getUnresolvedVariableLoads(reachability, inst); - for (auto load : loads) - { - sink->diagnose(load, + auto loads = getUnresolvedVariableLoads(reachability, inst); + for (auto load : loads) + { + sink->diagnose(load, Diagnostics::usingUninitializedVariable, inst); + } } } } |
