summaryrefslogtreecommitdiff
path: root/includes/compiler/CException.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2022-12-29 12:32:55 +0000
committerAsh Wolf <ninji@wuffs.org>2022-12-29 12:32:55 +0000
commitfcfbafff31869ed808bff0639532db1828660e92 (patch)
tree7425b346b031c4cb47a06250b3f6f950374d44ae /includes/compiler/CException.h
parentbc1321735c15104ffad195e1509cab5f3a044260 (diff)
downloadMWCC-fcfbafff31869ed808bff0639532db1828660e92.tar.gz
MWCC-fcfbafff31869ed808bff0639532db1828660e92.zip
dump lots more code
Diffstat (limited to '')
-rw-r--r--includes/compiler/CException.h26
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