Skip to content
Advertisement

Tag: c++17

Why doesn’t defining `__cxa_throw` cause a link error?

Why doesn’t the following C++ program have a link conflict with the system-provided __cxa_throw ? Is there something magical about that symbol? For a normal function this would be an ODR violation wouldn’t it? Answer As @Igor pointed out, you need to add extern “C” to prevent name mangling. But the cause why it works is because the symbol is

Advertisement