Replace throw with throw_exeception in do_with_buffered_output.
This patch fixes regressions in gdb.dwarf2/dw2-dir-file-name.exp
caused by commit
519d63439.
do_with_buffered_output needs to use throw_exception instead of
throw to ensure that exceptions of the correct type are thrown.
If using throw, gdb_exception_error may be wrongly converted into
gdb_exception during print_frame_info. This prevents the exception
from being caught in print_stack_frame.
{
func (uiout, std::forward<Arg> (args)...);
}
- catch (const gdb_exception &ex)
+ catch (gdb_exception &ex)
{
/* Ideally flush would be called in the destructor of buffer_group,
however flushing might cause an exception to be thrown. Catch it
{
}
- throw (std::move (ex));
+ throw_exception (std::move (ex));
}
/* Try was successful. Let any further exceptions propagate. */