aboutsummaryrefslogtreecommitdiff
path: root/gcc/c/c-parser.cc
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2025-01-13 14:53:25 -0300
committerAlexandre Oliva <oliva@gnu.org>2025-01-14 13:14:56 -0300
commit22fe3c05d86b52c35850918bfb21e1f597e1b5c7 (patch)
tree01ff7b06230e5ec8b99f30552b019162467063c6 /gcc/c/c-parser.cc
parente5e9e50fc6816713d012f1d96ae308a0946d5a14 (diff)
downloadgcc-22fe3c05d86b52c35850918bfb21e1f597e1b5c7.zip
gcc-22fe3c05d86b52c35850918bfb21e1f597e1b5c7.tar.gz
gcc-22fe3c05d86b52c35850918bfb21e1f597e1b5c7.tar.bz2
[ifcombine] check and extend constants to compare with bitfields
Add logic to check and extend constants compared with bitfields, so that fields are only compared with constants they could actually equal. This involves making sure the signedness doesn't change between loads and conversions before shifts: we'd need to carry a lot more data to deal with all the possibilities. for gcc/ChangeLog PR tree-optimization/118456 * gimple-fold.cc (decode_field_reference): Punt if shifting after changing signedness. (fold_truth_andor_for_ifcombine): Check extension bits in constants before clipping. for gcc/testsuite/ChangeLog PR tree-optimization/118456 * gcc.dg/field-merge-21.c: New. * gcc.dg/field-merge-22.c: New.
Diffstat (limited to 'gcc/c/c-parser.cc')
0 files changed, 0 insertions, 0 deletions