3 ms·
Is there an example where changing the exception handling system does not change the ABI?
by ctz 7y ago
Is there an example where changing the exception handling system does not change the ABI?
- twic 7y agoChanging the handling of existing exceptions, no. But adding a new kind of exception is fine. That's what the herbceptions proposal did. However, i think they are in fact proposing to change the ABI here.
- aw1621107 7y agoI'm not familiar enough with the darker corners of C++ implementations to say, but I'd guess not. From what the paper describes it seems table-based exception handling is deeply ingrained into the Itanium ABI so any significant change would be an ABI break, which would make said change more difficult to spread.
- asveikau 7y agoI am not sure if all implementers made the same choices, but for example I believe Microsoft concluded that table-based EH is always better and made not only their IA64 ABI but also their amd64 ABI use it. They keep 32-bit x86 at an older implementation for compatibility reasons, but any ABI introduced later gets the new thing.
- aw1621107 7y agoWait, is the Itanium ABI not the amd64 ABI? I thought that the 64-bit x86 ABI was called the Itanium ABI despite Itanium having gone kaput. Did Microsoft release a paper with that conclusion? I'd be curious to read more about their reasoning.
- asveikau 7y agoHmm, I missed the C++ism for this term. Googling around: > Although it was initially developed for the Itanium architecture, it is not platform-specific and can be layered portably on top of an arbitrary C ABI. My mistake, my comment is mostly rubbish then.
- aw1621107 7y agoI didn't realize it was a C++-specific thing, to be honest. I should probably try for more generic wording in the future.