aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.cc
diff options
context:
space:
mode:
authorTejas Belagod <tejas.belagod@arm.com>2024-09-05 14:38:38 +0530
committerTejas Belagod <tejas.belagod@arm.com>2024-11-29 17:01:50 +0530
commit4f593db8803cc8df796314ca9e15a72c51d6bde9 (patch)
tree2151f409f016555d3dc528b5fc9546421b432bc8 /gcc/tree-cfg.cc
parent47fa008ad880c115bce4007fe9808e48b0dcf859 (diff)
downloadgcc-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.cc2
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 "