If really the author meant to add noexcept, she must then be aware of the problem and properly handle exceptions anyway, as IIUC all this is merely a runtime check that leads to program abortion.

Its sadly easy to allow exceptions, they are slippery little things:

int f() try {
    the code;
} catch(...){
    now I must not allow anything to throw here;
    careful of IO, constructing objects, operators;
    sheesh, not much you CAN do;
    better just terminate, or return -1;
}

The nice thing about the noexcept is it can catch exceptions from the catch clause too, so it would be good if it could be used.

So authors of C++ plugins are forced to consider the issue. But that breaks C++ API.

Though I wouldn't expect too many C++ plugins for the new API, yet, now is the best chance.

Though, I still wonder how this can change the ABI, especially in C linkage where there can't be no name mangling anyway.

I wouldn't think it would change the ABI, I would have expected the stack frame to have a flag saying this function is noexcept so the unwinder can see it and terminate. So its internal to the function. But it is implementation dependent, so who knows.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.