Why doesn't the following C++ program have a link conflict with the system-provided __cxa_throw ?
#include <cstring>
void __cxa_throw(void *, void *, void (*)(void *)) {
std::puts("bad luck");
}
int main() {
throw 13;
}
Is there something magical about that symbol? For a normal function this would be an ODR violation wouldn't it?