diff options
author | Richard Biener <rguenther@suse.de> | 2022-11-30 10:55:03 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-11-30 12:00:56 +0100 |
commit | 9500877d05c56cef7bfbdcecaab3b1af2610bff3 (patch) | |
tree | 060d420699da00ccf5c95ca0a34bec48ec781143 /gcc/fortran/parse.cc | |
parent | 7716ee1e90412f785cba20acffd59fc7461302cb (diff) | |
download | gcc-9500877d05c56cef7bfbdcecaab3b1af2610bff3.zip gcc-9500877d05c56cef7bfbdcecaab3b1af2610bff3.tar.gz gcc-9500877d05c56cef7bfbdcecaab3b1af2610bff3.tar.bz2 |
tree-optimization/107919 - uninit diagnostic predicate simplification
We fail to simplify
((_145 != 0B) AND (_531 == 2) AND (_109 == 0))
OR ((NOT (_145 != 0B)) AND (_531 == 2) AND (_109 == 0))
OR ((NOT (_531 == 2)) AND (_109 == 0))
because the existing simplification of !A && B || A && B is implemented
too simplistic. The following re-implements that which fixes the
bogus uninit diagnostic when using -O1 but not yet at -O2.
PR tree-optimization/107919
* gimple-predicate-analysis.cc (predicate::simplify_2):
Handle predicates of arbitrary length.
* g++.dg/warn/Wuninitialized-pr107919-1.C: New testcase.
Diffstat (limited to 'gcc/fortran/parse.cc')
0 files changed, 0 insertions, 0 deletions