aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.cc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2024-12-14 11:28:25 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2024-12-14 11:28:25 +0100
commit7f4e85a954d24cc30bf85f4040fcd204bd5e23fd (patch)
treeffbb3eff140796af4c6c682184f006cc82990866 /gcc/fortran/trans-expr.cc
parent9537ca5ad9bc23d7e9c446b4a7cbb98f63bddb6a (diff)
downloadgcc-7f4e85a954d24cc30bf85f4040fcd204bd5e23fd.zip
gcc-7f4e85a954d24cc30bf85f4040fcd204bd5e23fd.tar.gz
gcc-7f4e85a954d24cc30bf85f4040fcd204bd5e23fd.tar.bz2
gimple-fold: Fix the recent ifcombine optimization for _BitInt [PR118023]
The BIT_FIELD_REF verifier has: if (INTEGRAL_TYPE_P (TREE_TYPE (op)) && !type_has_mode_precision_p (TREE_TYPE (op))) { error ("%qs of non-mode-precision operand", code_name); return true; } check among other things, so one can't extract something out of say _BitInt(63) or _BitInt(4096). The new ifcombine optimization happily creates such BIT_FIELD_REFs and ICEs during their verification. The following patch fixes that by rejecting those in decode_field_reference. 2024-12-14 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/118023 * gimple-fold.cc (decode_field_reference): Return NULL_TREE if inner has non-type_has_mode_precision_p integral type. * gcc.dg/bitint-119.c: New test.
Diffstat (limited to 'gcc/fortran/trans-expr.cc')
0 files changed, 0 insertions, 0 deletions