https://issues.dlang.org/show_bug.cgi?id=14903

--- Comment #6 from [email protected] ---
---
import core.stdc.stdio;

struct Struct {
    int a = 6;
    ~this() {
        printf("dtor\n");
        throw new Exception("big bang");
    }
}

int foo(bool doThrow) {
    printf("foo()\n");
    if (doThrow)
        throw new Exception("bla");
    return 1;
}

void main()
{
    bool doThrow = true;
    int r = Struct().a + foo(doThrow);
}
---

DMD 2.068.0, Win32:
foo()
dtor
dtor
dtor
...
crash

Works as expected if there's only a single throw (either in foo() or in dtor).

--

Reply via email to