<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/59005>59005</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Move context-sensitive data out of `Environment`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:dataflow
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ymand
</td>
</tr>
</table>
<pre>
`Environment`s are used to track context specific to basic blocks. The context-sensitive fields, `CallStack`, `ReturnLoc` and `This PointeeLoc` are specific to a whole function context, and stable across blocks. So, they should be shared rather than copied for each new `Environment`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtkd2O0zAQhZ8mubE2yk-TNhe-gIVegYTYfYGxM4nNup7K47T07ZlUFJAWyZLH51jfHI8NTTddDPXnePGJ4gljlhMrSKhWxkllUjmBfVOWYsafWfEZrZ-93RwDLIUJZN-4Uq8OH7eeGCP77C-oZo9h4qJ9VgJ-hhBesuCk_i19x7ym-IWs1AritGmvzrP6Rl5Y-HAk0L-tQV0dBcGv0WZP8dF5o24UzmDEBpuI-U_EF9r87PCm2NEaJmUE6wQ-qQSiJzFhg529SDMlhWCdinhV76ZUlaibYTj07b7uhnLS3TR2I5TZ54D6K13-N44JMihas6L5PbFcU9Au5zMX3YeiPcpafHarqSyd5BDC5bE9nRP9QCvvPXrmFWXCx36s6750er-DfuxwPxxMPdrB2GmubYeIAN28t3UZwGBgXfQfi7a1AeIi_bZkc6CrSEX_qfS6rdu2aZq-6XddP1TtYcQeuwMO0JiDHYpdjSfwodriVJSWMul7MrMuLGbwnPmvCcx-iYj3rsKHNTtK-naS3yrvT9D3_L8A6YbbQw">