This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/20054] [4.0 Regression] ICE in change_address_1
- From: "uweigand at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Feb 2005 18:45:43 -0000
- Subject: [Bug target/20054] [4.0 Regression] ICE in change_address_1
- References: <20050218131737.20054.jakub@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From uweigand at gcc dot gnu dot org 2005-02-18 18:45 -------
OK, now I see the problem: cleanup_subreg_operands *does* indeed
touch only operands. However, the result of the splitter matches
the *llgt_didi insn instead of *llgt_disi, because after reload
nonimmediate_operands matches a SUBREG (MEM). Thus the SUBREG is
indeed part of the operand, which is broken.
The proper fix is to move the *llgt_disi pattern to *before* the
*llgt_didi pattern to ensure it matches first.
I'll commit this fix once testing completes.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20054