diff options
author | Alexandre Oliva <oliva@adacore.com> | 2025-02-07 08:30:47 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2025-02-07 08:30:47 -0300 |
commit | 075ddb5226c40c4d86ab56b7788882822fb6494e (patch) | |
tree | f76f4c2084117cffc13253efa580eb4276acd90c /gcc/tree-vectorizer.h | |
parent | b5a29a93ee29a882c9ed28cb0e6835f97d6f8182 (diff) | |
download | gcc-075ddb5226c40c4d86ab56b7788882822fb6494e.zip gcc-075ddb5226c40c4d86ab56b7788882822fb6494e.tar.gz gcc-075ddb5226c40c4d86ab56b7788882822fb6494e.tar.bz2 |
[ifcombine] avoid creating out-of-bounds BIT_FIELD_REFs [PR118514]
If decode_field_reference finds a load that accesses past the inner
object's size, bail out.
Drop the too-strict assert.
for gcc/ChangeLog
PR tree-optimization/118514
PR tree-optimization/118706
* gimple-fold.cc (decode_field_reference): Refuse to consider
merging out-of-bounds BIT_FIELD_REFs.
(make_bit_field_load): Drop too-strict assert.
* tree-eh.cc (bit_field_ref_in_bounds_p): Rename to...
(access_in_bounds_of_type_p): ... this. Change interface,
export.
(tree_could_trap_p): Adjust.
* tree-eh.h (access_in_bounds_of_type_p): Declare.
for gcc/testsuite/ChangeLog
PR tree-optimization/118514
PR tree-optimization/118706
* gcc.dg/field-merge-25.c: New.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions