This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: New bootstrap failure on ARM
- From: Jan Hubicka <jh at suse dot cz>
- To: Richard dot Earnshaw at arm dot com
- Cc: Jan Hubicka <jh at suse dot cz>, gcc-bugs at gcc dot gnu dot org
- Date: Fri, 7 Dec 2001 16:02:03 +0100
- Subject: Re: New bootstrap failure on ARM
- References: <200112071407.OAA13997@cam-mail2.cambridge.arm.com>
>
> cleanup_subreg_operands ends up calling alter_subreg twice, the first time
> when walking the MULT (which matches the "shift_operator" operand) and the
> second time when processing operand[4] directly: on the second call
> operand[4] is no-longer a subreg and the compiler segfaults. This occurs
> because although recog_data.operand_loc[4] has been fixed,
> recog_data.operand[4] still contains a subreg (but we then call
> alter_subreg with something that isn't a subreg).
>
> It's not immediately obvious to me what the best fix is. Three possible
> approaches spring to mind (in rough order of my preference):
Uhm, I see...
>
> 1) Test *recog_data.operand_loc[i] for being a subreg rather than
> recog_data.operand[i]
I guess this is the best hack for it. I can bring the patch tomorrow.
Honza
> 2) Make alter_subreg do nothing if it isn't passed a subreg.
> 3) Make cleanup_subreg_operands ignore match_operator operands.
>
> Do you have an opinion?
>
> R.
>