diff options
author | Ash Wolf <ninji@wuffs.org> | 2022-12-29 12:32:55 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2022-12-29 12:32:55 +0000 |
commit | fcfbafff31869ed808bff0639532db1828660e92 (patch) | |
tree | 7425b346b031c4cb47a06250b3f6f950374d44ae /includes/compiler/CException.h | |
parent | bc1321735c15104ffad195e1509cab5f3a044260 (diff) | |
download | MWCC-fcfbafff31869ed808bff0639532db1828660e92.tar.gz MWCC-fcfbafff31869ed808bff0639532db1828660e92.zip |
dump lots more code
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/CException.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/includes/compiler/CException.h b/includes/compiler/CException.h index 04af4fa..0e19380 100644 --- a/includes/compiler/CException.h +++ b/includes/compiler/CException.h @@ -3,7 +3,29 @@ #include "compiler/common.h" -// TODO -extern Boolean CExcept_CanThrowException(Object *obj, Boolean flag); +extern ExceptionAction *cexcept_dobjstack; +extern Boolean cexcept_hasdobjects; +extern Boolean cexcept_magic; + +extern void CExcept_Setup(void); +extern Boolean CExcept_CanThrowException(Object *object, Boolean flag); +extern void CExcept_CheckStackRefs(ExceptionAction *actions); +extern void CExcept_CompareSpecifications(ExceptSpecList *a, ExceptSpecList *b); +extern Boolean CExcept_ActionCompare(ExceptionAction *a, ExceptionAction *b); +extern int CExcept_IsSubList(ExceptionAction *a, ExceptionAction *b); +extern Boolean CExcept_ActionNeedsDestruction(ExceptionAction *action); +extern ENode *CExcept_RegisterDestructorObject(Object *local, SInt32 offset, Object *dtor, Boolean flag); +extern void CExcept_RegisterLocalArray(Statement *stmt, Object *localarray, Object *dtor, SInt32 elements, SInt32 element_size); +extern void CExcept_RegisterDeleteObject(Statement *stmt, Object *pointerobject, Object *deletefunc); +extern void CExcept_Terminate(void); +extern void CExcept_Magic(void); +extern void CExcept_ArrayInit(void); +extern void CExcept_RegisterMember(Statement *stmt, Object *objectptr, SInt32 offset, Object *dtor, Object *cond, Boolean isMember); +extern void CExcept_RegisterMemberArray(Statement *stmt, Object *objectptr, SInt32 offset, Object *dtor, SInt32 elements, SInt32 element_size); +extern Statement *CExcept_ActionCleanup(ExceptionAction *ea, Statement *stmt); +extern void CExcept_ScanExceptionSpecification(TypeFunc *tfunc); +extern ENode *CExcept_ScanThrowExpression(void); +extern void CExcept_ScanTryBlock(DeclThing *dt, Boolean flag); +extern void CExcept_ExceptionTansform(Statement *stmt); #endif |