copy_blkmode_from_reg (called from expand_call) calls preserve_temp_slots 
without pushing a scope first. Hence it appears to be possible, and I'm 
appearantly running into such a case, that it calls this when temp_slot_level 
is zero, leading to array accesses with index -1 (resulting in ill behavior, a 
SEGV for me). Would it be the right thing to wrap this and the immediately 
preceding call to assign_temp into push_temp_slots/pop_temp_slots? Or is it the 
other way around and the call to preserve_temp_slots is improper here?

While looking at this, I found that expr.c always calls free_temp_slots 
immediately followed by pops_temp_slots. Isn't the call to free_temp_slots 
pointless there?

Thanks, Jan

Reply via email to