This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [PATCH] Fix sibcall related failure in g++.old-deja/g++.other/eh1.C


On Fri, Jun 16, 2000 at 08:17:44AM -0700, Mark Mitchell wrote:
> 
>   If thisblock->data.block.last_unconditional_cleanup points to last_insn
>   before we start_sequence for the normal or tail call sequence and
>   expand_decl_cleanup appends code to it, then last_insn is not up-to-date
>   at the point we want to emit the CALL_PLACEHOLDER or normal_insns chain and
>   thus emit_insns/emit_insn throws away all the cleanup stuff.
> 
> Ugh.  
> 
> I'm not sure exactly what that code is doing, so I'll let RTH approve
> it.  But there's definitely a bug in your code:
> 
>   +      while (NEXT_INSN (insn));
> 
> That's a loop that's going to take either 0, or an infinite, number of
> trips, unless I'm losing it. :-)

??
It is a do insn=NEXT_INSN(insn); while(NEXT_INSN(insn)); construct.
Maybe I should add {} around it to make it more obvious.

	Jakub

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]