That's not the case here, as this is only directly called by Geany, right?
I was thinking a proxy written in C++ could cause Geany to call it on a subplugin? (but I don't know the details of proxy and geany interaction).
BTW, can really C-linkage stuff throw exceptions? Sure it's somewhat unrelated, but if it's meant to be called by C code it better not throw indeed.
As best I can tell its UB. The `extern "C"` is defined to control calling convention and name mangling, nothing else. I would doubt the C++ compiler will unilaterally apply `noexcept` to `extern "c"` functions since its still ok to call them from C++ as well.
In fact a disaster may occur without even the need to go through C and back to C++. If the stack unwinding moves from C++ to C stack frames, will it see frames without handlers, or will it see some random part of the C frame as specifying an exception handler and do "interesting" things? UB.
Its just very important to prevent all exceptions from exiting C++ into C, one of the rare places where swallowing exceptions is probably acceptable.