<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56931>56931</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang dataflow framework needs a widening operator
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:dataflow,
            soundness
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ymand
      </td>
    </tr>
</table>

<pre>
    Currently, the built in model and custom models only have a `join` operator. That operator can either act as a join or as a widening operator. However, this means that, in practice, that we are forced to choose between precision and convergence.

In the short term, we worked around this issue in the built-in model by breaking equivalence (and leaving a FIXME). Instead, we need to add a widening operator and then upgrade the engine to use it. This will likely take a number of steps, so this issue is a tracking bug for the steps along the way.

@tJener @Xazax-hun 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtUk1vnEAM_TVwsYJg-Nhw4JAmXTWVeushVwMGJjvMbOdj6fbX18O2aSNFQgxj4-f3nt2b8do9BmtJe3VNxCP4haAPUnmQGlYzkgLUIwzBebPeAg6MVldY8EKAkDT5q5GaDzBnsuiNzeD7gv7tCgNqIMnIFnDwgI7LYg1wbr9sciQt9fwfwhez0YXsjZJ0sBJqx5_oY4hrz5ax5EC3P7jdxmwswWTsQCN4A8NijGM15DeiWECDdNLomyCjGX4mPVCW5E9J_nB7P-vdArcY68GTXSM-Q2_GnhgWrQlcvVOSzgWKVN48u3vzrL9CbwlPURT9CPKCKraCRNzH7orwElMIx-eXb58T0WbwrJ0nHP_003QTgeP4kUG7Bu6rIZxniyPtJEjPUlMsCyxc-jgIJrpJpUDJE_HUPJ7i1HRYex6HmYCbnl1s6sw7WXEunj3eJfRhjsberIkFgMpwPN43vL5zMKly_5U0o_PXC_7Cn3dL0JBSVzR125R1IYp07MqxLVtMvfSKukeFjDaix0mZDSaLK0XHdxs-3JA0WNUt3jP38iERR35mXrHQZ4PhmR2Vuvw97s7WvNLAi3PctbHaY920ZZEunegHGuqiFdRSWeXTRFiOh7YWfZM3dVGkCnve-C6pPyVCDJEm9_tLlEPROT5cXAtNzsVQ_ZTKTuRC5Pd5VRwqVpwV1QGHtq6acjrUoqnYG1pRqiwyzIydU9vtZNlqx0klnXf_kuicnNmMnQjjY_C8od115T1Id1XdLuk31xZKiA">