Mercurial > hg > CbC > CbC_gcc
diff gcc/ira-conflicts.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/ira-conflicts.c Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/ira-conflicts.c Thu Oct 25 07:37:49 2018 +0900 @@ -1,5 +1,5 @@ /* IRA conflict builder. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. Contributed by Vladimir Makarov <vmakarov@redhat.com>. This file is part of GCC. @@ -226,8 +226,11 @@ if (REGNO (reg) < FIRST_PSEUDO_REGISTER) *offset = subreg_regno_offset (REGNO (reg), GET_MODE (reg), SUBREG_BYTE (x), GET_MODE (x)); - else - *offset = (SUBREG_BYTE (x) / REGMODE_NATURAL_SIZE (GET_MODE (x))); + else if (!can_div_trunc_p (SUBREG_BYTE (x), + REGMODE_NATURAL_SIZE (GET_MODE (x)), offset)) + /* Checked by validate_subreg. We must know at compile time which + inner hard registers are being accessed. */ + gcc_unreachable (); return reg; }