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

    <tr>
        <th>Summary</th>
        <td>
            A few questions about programming Clang Static Analyzer checkers.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    Dear LLVM Project Developers,

I apologize for the interruption. Recently, I encountered some issues during the process of writing Clang Static Analyzer checkers that I have been unable to resolve. Specifically, the test code is as follows:
`int custom_malloc(int **ptr, size_t size,struct Person *person) {
    *ptr = (int *)malloc(size);
    if (*ptr == NULL) {
 printf("Error: Memory allocation failed.\n");
    }
    return 1;
}`
In the checker, I matched the return statement using the checkEndFunction callback. I want to retrieve the SymbolRef and corresponding MemRegion for the function parameter ptr when the program reaches the return statement (in the test code, ptr points to a new memory region). However, I'm not sure which interface to use to obtain the assignment status of the function's parameters within the function at this point.I look forward to your reply!
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEVMFu4zYQ_RrqMlhBpmQ7OujgjddoAKdYJGiBnhYUNZLYUKRKDi04X1-QsjdZoEBPJEi-N2_mzVB4rwaD2LDtV7Y9ZiLQaF1zDs_KDH8pc0RCSVlru2tzROHgfP7zGb47-zdKgiNeUNsZnWf8kRUHVhyeQMxW20G9I_TWAY0IyhA6F2ZS1uTwghIN6Svjj_AEaKQN8R478HZCUN4H9NAFp8yQ4LOzEr0H28PiFMXjRy3MAK8kSEk4GKGv7-hAjijf0HmgURA8wSguCC2igWBEqxHIgkNv9QVzeJ1Rql5JoVcpMRKhJ5C2iypAeOit1nbxrIyZsV2hDIEMnuz0YxJaW8n4Qzxj_MD4YSYXibx6xx-UFsYfPbkgCb6j89bEh3PaMV4D239lxQEAYAUDK4_wmbH-GWQlq1l5R6g-vvzARejvf5zPn3hnpwz16RX_5px1rDzAM07WXSHxiugH9EJp7HK2fTSM81-CsP3xtnNIwRnYrHfxfFdEs00q263uq6GTIDlily5uME-CcEJDEPzd1IT5ZrpTMDLpiEa0Qr7l8ASLMLSaRU7hBRPi9Tq1Vr9gD8J0IK1z6Gdrusj4jNMLDimdW8_1d95ZODEhoYNYqmVEc2-qwYkJHAo5ov9vucmMXzsjJhmJZqsM-ShSgMEFprWwLqlgvM7hN7vg5VYVxvcTGEvgg0NYRiXHdSp6IVNbBp8W25K4RVwnM8mIgkLq_8-ZMb73H9l5WBSNN-zP5AUBjcqvavMn0Na-xRItwnUx3tUGBw7nOAKbrGvKri5rkWGz2ZdVva0rzrOxqcqHXb2rup2o-r0sH9oWJa_2nJcVL-W-zVTDC15tOC835abgPJdytxVFVxYou77Y9qwqcBJK51pfpty6IUtj3mx4Ue82mRYtap_-IM5lnO3Yittj5poI-NKGwbOq0MqT_6AgRRqbA_S4wD8BfczYg2htoLu90_9_FnkWnG5GojnNOT8xfhoUjaHNpZ0YP8V4t-XLvH58jJ_Wb4rx0y2FS8P_DQAA__-Dk8g0">