Changeset 7d6e01d for libcfa/src/exception.hfa
- Timestamp:
- May 19, 2020, 2:51:23 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 046a890, d47349b
- Parents:
- 068a202 (diff), 7c38d53 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/exception.hfa
r068a202 r7d6e01d 10 10 // Created On : Thu Apr 7 10:25:00 2020 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Thu Apr 7 10:25:00 202013 // Update Count : 012 // Last Modified On : Wed Apr 13 15:42:00 2020 13 // Update Count : 1 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 } 15 26 16 27 // Everything below this line should be considered a patch while the exception … … 69 80 #define _VTABLE_DECLARATION(exception_name, parent_name, ...) \ 70 81 struct exception_name; \ 82 void mark_exception(exception_name *); \ 71 83 VTABLE_TYPE(exception_name); \ 72 84 extern VTABLE_TYPE(exception_name) VTABLE_NAME(exception_name); \ … … 85 97 #define VTABLE_INSTANCE(...) _EXC_DISPATCH(_VTABLE_INSTANCE, __VA_ARGS__) 86 98 #define _VTABLE_INSTANCE(exception_name, parent_name, ...) \ 99 void mark_exception(exception_name *) {} \ 87 100 void _GLUE2(exception_name,_copy)(exception_name * this, exception_name * other) { \ 88 101 *this = *other; \
Note: See TracChangeset
for help on using the changeset viewer.