diff options
Diffstat (limited to 'includes/compiler/CABI.h')
-rw-r--r-- | includes/compiler/CABI.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/includes/compiler/CABI.h b/includes/compiler/CABI.h new file mode 100644 index 0000000..fde5b21 --- /dev/null +++ b/includes/compiler/CABI.h @@ -0,0 +1,39 @@ +#ifndef COMPILER_CABI_H +#define COMPILER_CABI_H + +#include "compiler/common.h" +#include "compiler/CDecl.h" + +#ifdef __MWERKS__ +#pragma options align=mac68k +#endif + +extern short CABI_GetStructResultArgumentIndex(void); +extern Type *CABI_GetSizeTType(void); +extern Type *CABI_GetPtrDiffTType(void); +extern SInt16 CABI_StructSizeAlignValue(Type *type, SInt32 size); +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(Object *obj, TypeClass *tclass); +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_AddLayeredDestructors(TypeClass *tclass); +extern ENode *CABI_DestroyObject(Object *dtor, ENode *objexpr, UInt8 mode, Boolean flag1, Boolean flag2); + +#ifdef __MWERKS__ +#pragma options align=reset +#endif + +#endif |