diff options
Diffstat (limited to 'includes/compiler/CABI.h')
-rw-r--r-- | includes/compiler/CABI.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/includes/compiler/CABI.h b/includes/compiler/CABI.h index 735eeea..6e190d5 100644 --- a/includes/compiler/CABI.h +++ b/includes/compiler/CABI.h @@ -8,6 +8,13 @@ #pragma options align=mac68k #endif +typedef enum CABIDestroyMode { + CABIDestroy0 = 0, + CABIDestroy1 = 1, + CABIDestroy2 = 2, + CABIDestroy3 = 3 +} CABIDestroyMode; + extern short CABI_GetStructResultArgumentIndex(TypeFunc *tfunc); extern Type *CABI_GetSizeTType(void); extern Type *CABI_GetPtrDiffTType(void); @@ -16,21 +23,21 @@ extern void CABI_ReverseBitField(TypeBitfield *tbitfield); extern void CABI_AddVTable(TypeClass *tclass); extern SInt32 CABI_GetVTableOffset(TypeClass *tclass); extern void CABI_LayoutClass(DeclE *decle, TypeClass *tclass); -extern void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *obj); +extern void CABI_MakeDefaultArgConstructor(TypeClass *tclass, Object *func); extern ENode *CABI_MakeThisExpr(TypeClass *tclass, SInt32 offset); extern SInt32 CABI_GetCtorOffsetOffset(TypeClass *tclass, TypeClass *base); extern Object *CABI_ConstructorCallsNew(TypeClass *tclass); typedef Statement *(*TransConstructorCallback)(Statement *stmt, TypeClass *tclass, TypeClass *base, SInt32 offset, Boolean flag); -extern void CABI_TransConstructor(Object *obj, Statement *stmt, TypeClass *tclass, TransConstructorCallback callback, Boolean flag); -extern void CABI_MakeDefaultConstructor(TypeClass *tclass, Object *obj); -extern void CABI_MakeDefaultCopyConstructor(TypeClass *tclass, Object *obj); -extern void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *obj); -extern void CABI_TransDestructor(Object *obj1, Object *obj2, Statement *stmt, TypeClass *tclass); -extern void CABI_MakeDefaultDestructor(TypeClass *tclass, Object *obj); -extern void CABI_MakeLayeredDestructor(TypeClass *tclass, Object *obj); -extern Object *CABI_GetDestructorObject(Object *obj, int what); +extern void CABI_TransConstructor(Object *obj, Statement *stmt, TypeClass *tclass, TransConstructorCallback callback, Boolean has_try); +extern void CABI_MakeDefaultConstructor(TypeClass *tclass, Object *func); +extern void CABI_MakeDefaultCopyConstructor(TypeClass *tclass, Object *func); +extern void CABI_MakeDefaultAssignmentOperator(TypeClass *tclass, Object *func); +extern void CABI_TransDestructor(Object *obj1, Object *obj2, Statement *stmt, TypeClass *tclass, CABIDestroyMode mode); +extern void CABI_MakeDefaultDestructor(TypeClass *tclass, Object *func); +extern void CABI_MakeLayeredDestructor(TypeClass *tclass, Object *func); +extern Object *CABI_GetDestructorObject(Object *obj, CABIDestroyMode mode); extern void CABI_AddLayeredDestructors(TypeClass *tclass); -extern ENode *CABI_DestroyObject(Object *dtor, ENode *objexpr, UInt8 mode, Boolean flag1, Boolean flag2); +extern ENode *CABI_DestroyObject(Object *dtor, ENode *objexpr, CABIDestroyMode mode, Boolean flag1, Boolean flag2); #ifdef __MWERKS__ #pragma options align=reset |