On Thu, Dec 15, 2011 at 6:58 AM, Tom Tromey wrote: >>>>>> "Doug" == Doug Evans writes: > > Doug> I will check this in in a few days if there are no objections. > Doug> 2011-12-14  Doug Evans   > > Doug>   * exceptions.c (catcher_list_size): New function. > Doug>   (last_message): Delete. > Doug>   (exception_messages, exception_messages_size): New static globals. > Doug>   (throw_it): Use exception_messages array to handle nested calls. > > It seems good to me. > > It was a little hard to understand why this was the right approach. > Actually I am not 100% sure I have convinced myself. > I think a comment explaining the motivating scenario would help. The motivating scenario is when we call throw_it instead a cleanup due to an earlier throw_it. [Actually, for the case at hand there were multiple calls to throw_it during the cleanup.] How's this? 2011-12-15 Doug Evans * exceptions.c (catcher_list_size): New function. (last_message): Delete. (exception_messages, exception_messages_size): New static globals. (throw_it): Use exception_messages array to handle nested calls.