summaryrefslogtreecommitdiff
path: root/gcc/cselib.c
diff options
context:
space:
mode:
authorDenis Chertykov <denisc@overta.ru>2003-05-28 19:18:29 +0000
committerDenis Chertykov <denisc@gcc.gnu.org>2003-05-28 23:18:29 +0400
commit291aac59a5c1cf12e32d59d194ff85b58b6910c7 (patch)
treeecc12a827471d53fa04c4dd50e247c3d3a8d0d57 /gcc/cselib.c
parentafc2b62daeeb6b93bfc08fcd5f6a8857841ac6d7 (diff)
downloadgcc-291aac59a5c1cf12e32d59d194ff85b58b6910c7.tar.gz
cselib.c (cselib_invalidate_regno): Abort if hardreg have a VOIDmode.
* cselib.c (cselib_invalidate_regno): Abort if hardreg have a VOIDmode. * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in call of cselib_invalidate_regno. From-SVN: r67210
Diffstat (limited to 'gcc/cselib.c')
-rw-r--r--gcc/cselib.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cselib.c b/gcc/cselib.c
index cf3394f237a..3ea7c236abd 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -1019,8 +1019,11 @@ cselib_invalidate_regno (regno, mode)
pseudos, only REGNO is affected. For hard regs, we must take MODE
into account, and we must also invalidate lower register numbers
if they contain values that overlap REGNO. */
- if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode)
+ if (regno < FIRST_PSEUDO_REGISTER)
{
+ if (mode == VOIDmode)
+ abort ();
+
if (regno < max_value_regs)
i = 0;
else
@@ -1427,7 +1430,7 @@ cselib_process_insn (insn)
{
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (call_used_regs[i])
- cselib_invalidate_regno (i, VOIDmode);
+ cselib_invalidate_regno (i, reg_raw_mode[i]);
if (! CONST_OR_PURE_CALL_P (insn))
cselib_invalidate_mem (callmem);