From 7a7b626bd3ff2e8c12752bec0650082a82a32f1c Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 8 Apr 2026 15:56:49 +0200 Subject: [PATCH] JIT: Handle writes to promoted locals in `AliasSet::AddNode` --- src/coreclr/jit/sideeffects.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/coreclr/jit/sideeffects.cpp b/src/coreclr/jit/sideeffects.cpp index 5b642529c62f57..8c640633921fb0 100644 --- a/src/coreclr/jit/sideeffects.cpp +++ b/src/coreclr/jit/sideeffects.cpp @@ -318,6 +318,19 @@ void AliasSet::AddNode(Compiler* compiler, GenTree* node) if (nodeInfo.IsLclVarWrite()) { m_lclVarWrites.Add(compiler, nodeInfo.LclNum()); + + LclVarDsc* dsc = compiler->lvaGetDesc(nodeInfo.LclNum()); + if (dsc->lvIsStructField) + { + m_lclVarWrites.Add(compiler, dsc->lvParentLcl); + } + else if (dsc->lvPromoted) + { + for (unsigned i = 0; i < dsc->lvFieldCnt; i++) + { + m_lclVarWrites.Add(compiler, dsc->lvFieldLclStart + i); + } + } } }