This patch set fixes PR 111972 and the fallout from it.
The first patch is a fix for -fanalyzer which I had implemented with
a different version of the 2nd patch while I was working at Marvell.
And the 2nd patch fixes the issue by having the following as
canonical forms:
* `a ^ 1` is the canonical form of `(convert_back)(zero_one == 0)` (and
`(convert_back)(zero_one != 1)`).
* `(convert)a` is the canonical form of `(convert)(zero_one != 0)` (and
`(convert)(zero_one == 1)`).
Andrew Pinski (2):
Remove check of unsigned_char in
maybe_undo_optimize_bit_field_compare.
MATCH: (convert)(zero_one !=/== 0/1) for outer type and zero_one type
are the same
gcc/analyzer/region-model-manager.cc | 3 --
gcc/fold-const.cc | 27 -----------------
gcc/match.pd | 16 ++++++++++
gcc/testsuite/gcc.dg/fold-even-1.c | 32 --------------------
gcc/testsuite/gcc.dg/tree-ssa/pr110637-1.c | 10 +++++++
gcc/testsuite/gcc.dg/tree-ssa/pr110637-2.c | 13 +++++++++
gcc/testsuite/gcc.dg/tree-ssa/pr110637-3.c | 14 +++++++++
gcc/testsuite/gcc.dg/tree-ssa/pr111972-1.c | 34 ++++++++++++++++++++++
gcc/testsuite/gcc.dg/tree-ssa/pr69270.c | 4 +--
gcc/testsuite/gcc.target/i386/pr110790-2.c | 16 ++++++++--
10 files changed, 103 insertions(+), 66 deletions(-)
delete mode 100644 gcc/testsuite/gcc.dg/fold-even-1.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr110637-1.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr110637-2.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr110637-3.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr111972-1.c
--
2.39.3