aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 6149ff551f9..b693ddd178d 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -2933,6 +2933,12 @@ bitfield_overlaps_p (tree blen, tree bpos, struct sra_elt *fld,
else
gcc_unreachable ();
+ if (CONTAINS_PLACEHOLDER_P (flen))
+ flen = size_binop (MULT_EXPR,
+ fold_convert (bitsizetype,
+ lang_hooks.types.max_size (fld->type)),
+ bitsize_unit_node);
+
gcc_assert (host_integerp (blen, 1)
&& host_integerp (bpos, 1)
&& host_integerp (flen, 1)