Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/exception.hfa

    r7c38d53 re68d092  
    1010// Created On       : Thu Apr  7 10:25:00 2020
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Wed Apr 13 15:42:00 2020
    13 // Update Count     : 1
     12// Last Modified On : Thu Apr  7 10:25:00 2020
     13// Update Count     : 0
    1414//
    15 
    16 trait is_exception(dtype T) {
    17         // The trait system can't describe the actual constrants.
    18         // Unused, should always be a no-op.
    19         void mark_exception(T *);
    20 };
    21 
    22 forall(dtype T | is_exception(T))
    23 inline void cancel_stack(T & except) __attribute__((noreturn)) {
    24         __cfaehm_cancel_stack( (exception_t *)&except );
    25 }
    2615
    2716// Everything below this line should be considered a patch while the exception
     
    8069#define _VTABLE_DECLARATION(exception_name, parent_name, ...) \
    8170        struct exception_name; \
    82         void mark_exception(exception_name *); \
    8371        VTABLE_TYPE(exception_name); \
    8472        extern VTABLE_TYPE(exception_name) VTABLE_NAME(exception_name); \
     
    9785#define VTABLE_INSTANCE(...) _EXC_DISPATCH(_VTABLE_INSTANCE, __VA_ARGS__)
    9886#define _VTABLE_INSTANCE(exception_name, parent_name, ...) \
    99         void mark_exception(exception_name *) {} \
    10087        void _GLUE2(exception_name,_copy)(exception_name * this, exception_name * other) { \
    10188                *this = *other; \
Note: See TracChangeset for help on using the changeset viewer.