sl@0: Exceptions library release 1.01. sl@0: sl@0: This source code is intended to be compliant with release 1.0 of the EHABI. sl@0: sl@0: The following defects against the previous (1.0) release have been fixed: sl@0: sl@0: 1) The personality routines were checking handler table entry descriptor sl@0: ranges using virtual r14 not virtual r15. Consequently if the entry contained sl@0: two or more descriptors with matching ranges, and the first was a cleanup, sl@0: subsequent descriptors would incorrectly fail the range check because the sl@0: cleanup code legitimately corrupted r14 (and hence virtual r14; virtual r15 sl@0: is preserved). sl@0: sl@0: 2) The runtime library would call abort() instead of terminate() under this sl@0: sequence of events: sl@0: i) The program installs an unexpected exception handler (set_unexpected(...)). sl@0: ii) A throw of type T violates a function exception specification, causing sl@0: unexpected() to be called and the user's handler to be entered. sl@0: iii) The handler throws another exception of type T. sl@0: sl@0: 3) Type matching when throwing a NULL pointer to pointer to T (any type T) sl@0: could dereference down the "pointer" chain beginning at location 0 (=NULL), sl@0: hence possibly accessing any location in memory.