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: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: per at bothner dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 25 Nov 01 19:19:11 EST
- Subject: Re: ICE in change_address at emit_rtl.c
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.
OK, I see what you mean. But this is very much the exceptional case of
SAVE_EXPR. The most common case is when you are putting it in the size
of offset inside a type. You have the same scoping issues no matter what you
call it.