clear-code/cutter — pull request #10 by kz0817 (2014-01-21 14:38:10+00:00)
Title: Call destructors of objects on a stack surely even when a C++ test fails

Previously cutter's assertions terminates a test immediately when
it fails. The termination is performed with longjmp() that doesn't
call a destructor of objects created on the stack.

Some C++ programs and libraries use a technique called RAII in
which freeing resources is done in a destructor. The most typical
usage is to free allocated memory. In other instances, ifstream,
a part of standard C++ library, closes the opned file on its
destructor if needed. Some code also unlocks in the destructor.

Therefore, unwinding a stack that surely calls destructors is
inevitable. This patch realizes it by throwing a special exception
instead of longjump() at the needed situatioin.