/*
TEST_OUTPUT:
---
fail_compilation/fail4082.d(14): Error: destructor `fail4082.Foo.~this` is not `nothrow`
fail_compilation/fail4082.d(12): Error: function `fail4082.test1` may throw but is marked as `nothrow`
---
*/
struct Foo
{
    ~this() { throw new Exception(""); }
}
nothrow void test1()
{
    Foo f;
    goto NEXT;
NEXT:
    ;
}
/*
TEST_OUTPUT:
---
fail_compilation/fail4082.d(32): Error: destructor `fail4082.Bar.~this` is not `nothrow`
fail_compilation/fail4082.d(32): Error: function `fail4082.test2` may throw but is marked as `nothrow`
---
*/
struct Bar
{
    ~this() { throw new Exception(""); }
}
nothrow void test2(Bar t)
{
}