/*
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;
}