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

    <tr>
        <th>Summary</th>
        <td>
             CSA evaluates ` clang_analyzer_eval(((a())<(0))||((a())==(0)));`  to be TRUE, but function `a()` is a unknown function.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
     CSA evaluates ` clang_analyzer_eval(((a())<(0))||((a())==(0)));`  and `clang_analyzer_eval((((a())>=(0))&&((a())!=(0)))==false);` to be TRUE, but function `a()` is a unknown function.

Compileration options: --analyze -Xclang -analyzer-config  -Xclang  eagerly-assume=false    -Xclang -analyzer-stats     -Xclang -analyzer-checker=core,debug.ExprInspection

See it live: https://godbolt.org/z/dYdqG9fzG

Input:
```c
#include "stdio.h"
#include <stdint.h>
#include <stdbool.h>
void clang_analyzer_eval(int a){}
int a(); 

uint16_t b() {
    if (a() <= 0) {
      clang_analyzer_eval((a() <= 0)==true);
 clang_analyzer_eval(((a())<(0))||((a())==(0)));
 clang_analyzer_eval(((a())+0)<=((0)+0));
 clang_analyzer_eval(((a())+0)<=((0)+1));
 clang_analyzer_eval(((a())+1)<=((0)+1));
 clang_analyzer_eval(((a())+0)<=((0)+2));
 clang_analyzer_eval(((a())+1)<=((0)+2));
 clang_analyzer_eval(((a())+2)<=((0)+2));
 clang_analyzer_eval(((a())-0)<=((0)-0));
      clang_analyzer_eval((!(a() <= 0))==false);
 clang_analyzer_eval((((a())>=(0))&&((a())!=(0)))==false);
 clang_analyzer_eval(true);
      ;
    }
}
```

CSA Output:
```bash
<source>:9:7: warning: UNKNOWN [debug.ExprInspection]
      clang_analyzer_eval((a() <= 0)==true);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:10:7: warning: TRUE [debug.ExprInspection]
 clang_analyzer_eval(((a())<(0))||((a())==(0)));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:10:7: warning: UNKNOWN [debug.ExprInspection]
 clang_analyzer_eval(((a())<(0))||((a())==(0)));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:11:7: warning: UNKNOWN [debug.ExprInspection]
 clang_analyzer_eval(((a())+0)<=((0)+0));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:12:7: warning: UNKNOWN [debug.ExprInspection]
      clang_analyzer_eval(((a())+0)<=((0)+1));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:13:7: warning: UNKNOWN [debug.ExprInspection]
 clang_analyzer_eval(((a())+1)<=((0)+1));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:14:7: warning: UNKNOWN [debug.ExprInspection]
      clang_analyzer_eval(((a())+0)<=((0)+2));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:15:7: warning: UNKNOWN [debug.ExprInspection]
 clang_analyzer_eval(((a())+1)<=((0)+2));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:16:7: warning: UNKNOWN [debug.ExprInspection]
      clang_analyzer_eval(((a())+2)<=((0)+2));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:17:7: warning: UNKNOWN [debug.ExprInspection]
 clang_analyzer_eval(((a())-0)<=((0)-0));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:18:7: warning: UNKNOWN [debug.ExprInspection]
      clang_analyzer_eval((!(a() <= 0))==false);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:19:7: warning: TRUE [debug.ExprInspection]
 clang_analyzer_eval((((a())>=(0))&&((a())!=(0)))==false);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:19:7: warning: UNKNOWN [debug.ExprInspection]
 clang_analyzer_eval((((a())>=(0))&&((a())!=(0)))==false);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:20:7: warning: TRUE [debug.ExprInspection]
 clang_analyzer_eval(true);

```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWFtvq7gT_zTmxQrC4wDhgYdcmuroL_VI_-7R7j5VBgzxHsfOYtNu-7CffWVImp6E9qS5tDqRFcDjufw845mRmTGiUpynKJygcOaxxi50nV5zXZY1fyQBGXqZLh5TPL0dY37PZMMsNxhFAc4lU9UdU0w-PvH6zhERjLrB2kfiBp0iGAXrj3jqxt6SmRvbVW5q4lRgpgqn6y1VO6KudkRF7dhZBWRfobOhZNLwrXqrccbxb___doVgirPG4rJRuRVaOaM28qIAC4MZbtR3pR_U8xofBTMUjLv_qV6uhOQ1a7n1yj0MomM8GKxh4cEfLUy8magHuValqPAzBXNW8Vo-DpgxzZJvDMYY9zAby6zB_bR8wfPvvEZ0luuaI5gWPGsq_-qfVf1FmRVv7X9p_i3nWFgsxT13Ri-sXTnrEcwRzCtdZFpaX9cVgvkTgnnxZ_H3dVI-Xb-U8UWtGuuYurko6Ea-_gYqVC6bgmMEYGwhtL9AAPtUOnVUZf2F83Y_OdNavqDfa1G8Eq9CWcza0JygeNYtX8-NukjAL0E0QlkS3VmcdXTs-FqK22lR4m2gOVMQneFgbxl-_ez08HahaetmE5mdnEsfv3dpgUmwVtZKehY2Cc4tkBwtkJxb4CsWwrktPF4gnFXgoA_wYM_Dbwe4y739Yd6XhH9u3qXS_1ua985i-_vh8zmXbF82Ce-HsnA7xl8b25sYM2YW6yk6Nbqpc97iGyeIjmOXhh9YrYSq3Ou3m__dfP39BqNw0pvLw9mZ0w8Kr_494NcLgAQ9CFyZ_bn5H5P1DgR3BMqD_fQrASUfAPTwCnMwpn4wcLnTdWyJOxER_RD3HFpeTwQz_HT37FXPExGFn-mec4OJPs49hzY3JyKKL--eAxurE4GMLuma9zd17yg9_Xj62qDTm4jL9pPvrbfH7MFZgvOX2gY4dz-52-32dvBekdIioQnzeEqiOAGaDKPEW6QhjfNRTAmQkpAkzngAQVHmeVSwKIeMeyKFAGhASUJCGELij4Y0T4YZhzAkjCQUDQO-ZEL6Ut4vfV1XnjCm4WlEQhJ7kmVcmvbKDkDxB9wSEQAKZ16dOp5B1lQGDQMpjDVbKVZYyT_rLu_E2zSvqWW6c_Ek7KLJ_FwvEcwdyPVjsKr1Xzy3CObt1hgE83br_gsAAP__oWMSyg">