Don't evaluate inside a "throw"

Workaround for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41174. This caused
hydra-eval-jobs to ignore SIGINT.
This commit is contained in:
Eelco Dolstra 2014-09-22 18:49:49 +02:00
parent 0cd6596b0e
commit 53b044c2f6

View file

@ -333,15 +333,16 @@ static void prim_genericClosure(EvalState & state, const Pos & pos, Value * * ar
static void prim_abort(EvalState & state, const Pos & pos, Value * * args, Value & v)
{
PathSet context;
throw Abort(format("evaluation aborted with the following error message: %1%") %
state.coerceToString(pos, *args[0], context));
string s = state.coerceToString(pos, *args[0], context);
throw Abort(format("evaluation aborted with the following error message: %1%") % s);
}
static void prim_throw(EvalState & state, const Pos & pos, Value * * args, Value & v)
{
PathSet context;
throw ThrownError(format("%1%") % state.coerceToString(pos, *args[0], context));
string s = state.coerceToString(pos, *args[0], context);
throw ThrownError(s);
}