On 12 Feb 2016 11:20 a.m., "Niall Douglas"
LLVM, for the record, has implemented a very similar "universal" exception handling mechanism which allows exception throws to traverse language boundaries within LLVM, and my great hope is that once LLVM becomes universal on POSIX platforms someone will go ahead and replace signals with structured exception handling.
As far as I know LLVM simply implements unwinding as mandates by the Itanium ABI, which is already the de facto standard on many unices. Is this what you are referring to? This is completely orthogonal with handling OS/machine exceptions (segfaults, division by zero, etc..). And with right compiler and flag there are ways to convert (synchronous) signals to exceptions. This actually required to support the semantics of languages other than the C family, like Java and Ada. Notably, it doesn't actually work with LLVM, but it does with gcc. -- gpd