Changes in libcfa/src/exception.hfa [7c38d53:e68d092]
- File:
-
- 1 edited
-
libcfa/src/exception.hfa (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/exception.hfa
r7c38d53 re68d092 10 10 // Created On : Thu Apr 7 10:25:00 2020 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Apr 13 15:42:00 202013 // Update Count : 112 // Last Modified On : Thu Apr 7 10:25:00 2020 13 // Update Count : 0 14 14 // 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 }26 15 27 16 // Everything below this line should be considered a patch while the exception … … 80 69 #define _VTABLE_DECLARATION(exception_name, parent_name, ...) \ 81 70 struct exception_name; \ 82 void mark_exception(exception_name *); \83 71 VTABLE_TYPE(exception_name); \ 84 72 extern VTABLE_TYPE(exception_name) VTABLE_NAME(exception_name); \ … … 97 85 #define VTABLE_INSTANCE(...) _EXC_DISPATCH(_VTABLE_INSTANCE, __VA_ARGS__) 98 86 #define _VTABLE_INSTANCE(exception_name, parent_name, ...) \ 99 void mark_exception(exception_name *) {} \100 87 void _GLUE2(exception_name,_copy)(exception_name * this, exception_name * other) { \ 101 88 *this = *other; \
Note:
See TracChangeset
for help on using the changeset viewer.