summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorvenkataram-nv <vedavamadath@nvidia.com>2024-07-18 11:13:26 -0700
committerGitHub <noreply@github.com>2024-07-18 11:13:26 -0700
commit1677a25f44d6f608c8aecd4e5c0ceeb94573c10e (patch)
treee2202181d3783024b83a02f29c6716d4c0ada34a /source
parent0d06ebcefb36a19710d87832fc1ea027e21281af (diff)
Fix bug with uninititialized warnings in nested scopes (#4677)
Previously the warning system ignores undefined variables in nested scopes (blocks in IR).
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-ir-use-uninitialized-values.cpp23
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);
+ }
}
}
}