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); + } + } } }