/*
https://issues.dlang.org/show_bug.cgi?id=21598
REQUIRED_ARGS: -checkaction=context -debug
PERMUTE_ARGS:
*/
void main()
{
	bool caught;
	try
		assert(foo(1));
	catch (Throwable)
		caught = true;
	assert(caught);
	assert(counter == 1);
}
__gshared int counter;
int foo(int i) pure nothrow
{
	debug counter++;
	return i - 1;
}