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).
Probably not, because `geany_load_module()` is the builtin Geany API, a proxy plugin is likely to have it own, and even then, only one place should call that function inside plugins.
As best I can tell its UB. […]
Yeah I'd imagine. Though, I'm wondering what's worse: not checking signature at all, or requiring authors of C++ plugins to carefully not throw any exception (from inside a function that is highly unlikely to contain much C++ code)? 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.
An alternative solution could be something like this: ```C++ #ifdef __cplusplus /* >= 2011 */ gboolean geany_load_module(GeanyPlugin *plugin) noexcept; #else gboolean geany_load_module(GeanyPlugin *plugin); #endif ``` So authors of C++ plugins are forced to consider the issue. But that breaks C++ API.