diff options
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r-- | gcc/tree-sra.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index ff7a52c..764f70b 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -2897,6 +2897,11 @@ bitfield_overlaps_p (tree blen, tree bpos, struct sra_elt *fld, flen = fold_convert (bitsizetype, TREE_OPERAND (fld->element, 1)); fpos = fold_convert (bitsizetype, TREE_OPERAND (fld->element, 2)); } + else if (TREE_CODE (fld->element) == INTEGER_CST) + { + flen = fold_convert (bitsizetype, TYPE_SIZE (fld->type)); + fpos = size_binop (MULT_EXPR, flen, fld->element); + } else gcc_unreachable (); |