gcc/stor-layout.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index ea0d44d64d26..1387c0e9e060 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -2486,7 +2486,12 @@ get_best_mode (int bitsize, int bitpos, unsigned int align, && unit <= MIN (align, BIGGEST_ALIGNMENT) && (largest_mode == VOIDmode || unit <= GET_MODE_BITSIZE (largest_mode))) + { wide_mode = tmode; + /* Wide enough? */ + if (unit >= 32) + break; + } } if (wide_mode != VOIDmode)