https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109199
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|GCC Static Analyzer |GCC Static Analyzer |evaluates |evaluates |`__analyzer_eval((((c) + 1) |`__analyzer_eval((((c) + 1) |== ((&b[0]) + 1)))` to be |== ((&b[0]) + 1)))` to be |FLASE with the fact `c == |FALSE with the fact `c == |&b[0]` |&b[0]` Ever confirmed|0 |1 Last reconfirmed| |2023-03-20 Status|UNCONFIRMED |ASSIGNED --- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Confirmed. The analyzer is comparing: (gdb) call rhs1_sval->dump(true) &b (gdb) call rhs2_sval->dump(true) &b[(int)0] and not treating these two pointers as identical.