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

    <tr>
        <th>Summary</th>
        <td>
            CSA evaluates `(255UL == b)==true` to be FALSE with the fact that `255UL == b`
        </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>
    Hi, I found a problem that CSA evaluates `(255UL == b)==true` to be FALSE with the fact that `255UL == b`.

https://godbolt.org/z/TEvrav6ja

Input:
```c
#include "stdio.h"
#include <stdint.h>
#include <stdbool.h>

void clang_analyzer_eval();

int32_t a(int8_t b) {
  if (255UL == b) {
    clang_analyzer_eval((255UL == b));
    clang_analyzer_eval((255UL == b)==true);
    clang_analyzer_eval(((255UL)!=(b))==false);
 clang_analyzer_eval(((255UL)+0)==((b)+0));
 clang_analyzer_eval(((255UL)-0)==((b)-0));
    
 }
}
```

Output:
```bash
<source>:9:5: warning: FALSE [debug.ExprInspection]
    clang_analyzer_eval((255UL == b));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:10:5: warning: FALSE [debug.ExprInspection]
    clang_analyzer_eval((255UL == b)==true);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:11:5: warning: FALSE [debug.ExprInspection]
    clang_analyzer_eval(((255UL)!=(b))==false);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:12:5: warning: FALSE [debug.ExprInspection]
 clang_analyzer_eval(((255UL)+0)==((b)+0));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:13:5: warning: FALSE [debug.ExprInspection]
    clang_analyzer_eval(((255UL)-0)==((b)-0));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===-------------------------------------------------------------------------===
 Analyzer timers
===-------------------------------------------------------------------------===
 Total Execution Time: 0.0013 seconds (0.0013 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.0008 ( 65.8%)   0.0000 (  0.0%)   0.0008 ( 64.2%)   0.0009 ( 65.6%)  Path exploration time
   0.0003 ( 23.9%)   0.0000 (  0.0%) 0.0003 ( 23.3%)   0.0003 ( 22.3%)  Path-sensitive report post-processing time
   0.0001 ( 10.3%)   0.0000 (100.0%)   0.0002 ( 12.5%)   0.0002 ( 12.1%)  Syntax-based analysis time
   0.0012 (100.0%)   0.0000 (100.0%) 0.0013 (100.0%)   0.0013 (100.0%)  Total

5 warnings generated.
Compiler returned: 0
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Vl9v4rgX_TTm5SqRY5MQHvJAC_x-lUa7K7Wjfayc5EI8a2xkO7Sdh_3sK4dAoU13aHemURTM8fW55_5xYuGcXGvEgqRXJJ2PROsbY4v_oVmtLD4lNBmPSlM_Ff-XhF3DDaxMq2sQsLWmVLgB3wgP17czwJ1QrfDogGSUsJyl6dcvQPic8DmUhE33Q29bJBkFb6BEWM6-3C7gQfoGfIOwEpXfM5KMviDIaEzonNDZ_tl4v3WEzwhbErZcm7o0ysfGrglbfidsebfYWbHLvonTRTd62_qwaI9ldH9X_X_Gpa5UWyMQxpyvpYkbwtjrWX4dZrWPG8IXb0yXxqjT-e65M7KGSgm9vhdaqKfvaO9D4gjLuwxdnRpL7Tm79yAIy6X2-b3v8ghk0psByBUMpfrUBN70N1CiEw3vXPlc3Es5DjSd3yQQsPwoIrCthHLndJdxXdEjxX6qPIHfSxcNkUWvqACgH5HJvC_icXDos9Pi_t76wV4shWt6iF8709oKQw_x2ZTwWUr4DB6E1VKvw3C_fUh6VWPZruPF49beaLfFykujSTr_zz1A0sXfP7gGxSb0s9QO990Fuv9NffJr1H-g4y8O5M1Y2Mdj-cnb7R2xDIfCf3lZLtztH4hkvr-jn3UdGXtJsz4u8HKD1n2W2zvjhYLFI1ZtSDjcyQ2GstCY0oSDw8ro2oWPVI88CKWgUqb6K2T05IUIAFEUfXVoO5Ioijrk9sl53PRQhwQTwq72Ez0W_Rloj-vC4zexwTA4sgcBNA9SIEvjnLA0fCl7nHZ4GJ_jvf04Zuf49MCTHfA_hG8AH7fKWNGlIhTi3DnvFjEeT3_g_Nyan1v3OHvGg-vIoXbSyx2Cxa2xHrbG-WhrTYXOSb0e0JN0TAl96aHTk9BXyWB7exanb-DJAb990l48RqVwWEO35Zx0rxUk7A1PrxT03TNoPYB3bXnaXenhneFgjRqt8Fj358lrs9lKhRYs-tZqrLv-Hfx0j-qC11M-FSMskmzCJ1maT7JRU7CyxnySl_mqzlaTmiZJldUpHWOe0rqq2EgWjDJOkySlWTpJs3hclyzJp5yyUlQrRDKmuBFSxUrtNuEcO5LOtVhklI7ZSIkSlesO6YxpfIBuMpxN0_nIFmFNVLZrR8ZUSefdM4uXXmHxOQf0UWtV8eJgLn3TlnFlNoQtg6j-JzTmN6w8YcsuFEfYsgv1nwAAAP__DzZ26A">