diff options
author | Tejas Belagod <tejas.belagod@arm.com> | 2024-09-05 14:38:38 +0530 |
---|---|---|
committer | Tejas Belagod <tejas.belagod@arm.com> | 2024-11-29 17:01:50 +0530 |
commit | 4f593db8803cc8df796314ca9e15a72c51d6bde9 (patch) | |
tree | 2151f409f016555d3dc528b5fc9546421b432bc8 /gcc/tree-cfg.cc | |
parent | 47fa008ad880c115bce4007fe9808e48b0dcf859 (diff) | |
download | gcc-4f593db8803cc8df796314ca9e15a72c51d6bde9.zip gcc-4f593db8803cc8df796314ca9e15a72c51d6bde9.tar.gz gcc-4f593db8803cc8df796314ca9e15a72c51d6bde9.tar.bz2 |
gimple: Handle variable-sized vectors in BIT_FIELD_REF
Handle variable-sized vectors for BIT_FIELD_REF canonicalization.
gcc/ChangeLog:
* gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable
sized vector types in BIT_FIELD_REF canonicalization.
* tree-cfg.cc (verify_types_in_gimple_reference): Change object-size-
checking for BIT_FIELD_REF to error offsets that are known_gt to be
outside object-size. Out-of-range offsets can happen in the case of
indices that reference VLA SVE vector elements that may be outside the
minimum vector size range and therefore maybe_gt is not appropirate
here.
Diffstat (limited to 'gcc/tree-cfg.cc')
-rw-r--r-- | gcc/tree-cfg.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc index 9ac8304..87f9776 100644 --- a/gcc/tree-cfg.cc +++ b/gcc/tree-cfg.cc @@ -3175,7 +3175,7 @@ verify_types_in_gimple_reference (tree expr, bool require_lvalue) return true; } if (!AGGREGATE_TYPE_P (TREE_TYPE (op)) - && maybe_gt (size + bitpos, + && known_gt (size + bitpos, tree_to_poly_uint64 (TYPE_SIZE (TREE_TYPE (op))))) { error ("position plus size exceeds size of referenced object in " |