New bootstrap failure on ARM
Jan Hubicka
jh@suse.cz
Fri Dec 7 07:51:00 GMT 2001
>
> 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.
>
More information about the Gcc-bugs
mailing list