This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICE in change_address at emit_rtl.c
- From: mike stump <mrs at windriver dot com>
- To: kenner at vlsi1 dot ultra dot nyu dot edu, per at bothner dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 26 Nov 2001 14:50:30 -0800 (PST)
- Subject: Re: ICE in change_address at emit_rtl.c
> Date: Sun, 25 Nov 2001 16:12:36 -0800
> From: Per Bothner <per@bothner.com>
> Using a LET_EXPR makes the scope explicit. It is clear that the
> scope of the tmp lasts during the evaluation of the let-body, which
> is during the evaluation of the PLUS_EXPR. Using a SAVE_EXPR, the
> scope of the temporary is "from the first time the SAVE_EXPR is
> evaluated until the last time the SAVE_EXPR is evaluated". We
> cannot know what this is without analyzing the entire body of the
> function.
This wrong. The scope for the storage ends, like it or not, at the
end of the block in which it was expanded in, which is defined by a
call to push_temp_slots_for_block.