Changeset ed395761


Ignore:
Timestamp:
Jun 16, 2021, 10:32:33 AM (3 years ago)
Author:
Henry Xue <y58xue@…>
Branches:
ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
1f2e957, 95958a8
Parents:
3814957
Message:

Workaround to get default exception handling on ARM working

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/exception.c

    r3814957 red395761  
    256256        // the whole stack.
    257257
     258#if defined( __x86_64 ) || defined( __i386 )
    258259        // We did not simply reach the end of the stack without finding a handler. This is an error.
    259260        if ( ret != _URC_END_OF_STACK ) {
     261#else // defined( __ARM_ARCH )
     262        // The return code from _Unwind_RaiseException seems to be corrupt on ARM at end of stack.
     263        // This workaround tries to keep default exception handling working.
     264        if ( ret == _URC_FATAL_PHASE1_ERROR || ret == _URC_FATAL_PHASE2_ERROR ) {
     265#endif
    260266                printf("UNWIND ERROR %d after raise exception\n", ret);
    261267                abort();
Note: See TracChangeset for help on using the changeset viewer.