Changeset 6b72040 for doc/working/exception/impl/except.c
- Timestamp:
- Jun 2, 2017, 1:10:26 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 93684eb
- Parents:
- acd738aa
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/working/exception/impl/except.c
racd738aa r6b72040 4 4 5 5 #include "lsda.h" 6 7 // This macro should be the only thing that needs to change across machines. 8 // struct _Unwind_Context * -> _Unwind_Reason_Code(*)() 9 #define MATCHER_FROM_CONTEXT(ptr_to_context) \ 10 (*(_Unwind_Reason_Code(**)())(_Unwind_GetCFA(ptr_to_context) + 8)) 11 6 12 7 13 //Global which defines the current exception … … 17 23 struct _Unwind_Exception* unwind_exception, struct _Unwind_Context* context) 18 24 { 25 printf("CFA: 0x%lx\n", _Unwind_GetCFA(context)); 26 19 27 //DEBUG 20 28 printf("Personality function (%d, %x, %llu, %p, %p):", version, actions, exceptionClass, unwind_exception, context); … … 111 119 112 120 //Get a function pointer from the relative offset and call it 113 _Unwind_Reason_Code (*matcher)() = (_Unwind_Reason_Code (*)())lsd_info.LPStart + imatcher; 121 // _Unwind_Reason_Code (*matcher)() = (_Unwind_Reason_Code (*)())lsd_info.LPStart + imatcher; 122 123 _Unwind_Reason_Code (*matcher)() = 124 MATCHER_FROM_CONTEXT(context); 114 125 _Unwind_Reason_Code ret = matcher(); 115 126
Note: See TracChangeset
for help on using the changeset viewer.