2022-11-07 03:06:21 +00:00
|
|
|
#ifndef COMPILER_CMANGLER_H
|
|
|
|
#define COMPILER_CMANGLER_H
|
|
|
|
|
|
|
|
#include "compiler/common.h"
|
|
|
|
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=mac68k
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern HashNameNode *constructor_name_node;
|
|
|
|
extern HashNameNode *destructor_name_node;
|
|
|
|
extern HashNameNode *asop_name_node;
|
|
|
|
|
|
|
|
extern void CMangler_Setup(void);
|
|
|
|
extern HashNameNode *CMangler_BasicDtorName(void);
|
|
|
|
extern HashNameNode *CMangler_VBaseDtorName(void);
|
|
|
|
extern HashNameNode *CMangler_ArrayDtorName(void);
|
|
|
|
extern HashNameNode *CMangler_SDeleteDtorName(void);
|
|
|
|
extern HashNameNode *CMangler_DeleteDtorName(void);
|
2023-01-10 11:05:21 +00:00
|
|
|
extern char *CMangler_GetOperator(HashNameNode *name);
|
2022-11-07 03:06:21 +00:00
|
|
|
extern HashNameNode *CMangler_OperatorName(short token);
|
2023-01-10 11:05:21 +00:00
|
|
|
extern HashNameNode *CMangler_VTableName(TypeClass *theclass);
|
2022-11-07 03:06:21 +00:00
|
|
|
extern HashNameNode *CMangler_RTTIObjectName(Type *type, UInt32 qual);
|
2023-01-10 11:05:21 +00:00
|
|
|
extern HashNameNode *CMangler_ThunkName(Object *vfunc, SInt32 this_delta, SInt32 return_delta, SInt32 ctoroffset);
|
2022-11-07 03:06:21 +00:00
|
|
|
extern HashNameNode *CMangler_TemplateInstanceName(HashNameNode *basename, TemplArg *args);
|
|
|
|
extern void CMangler_MangleType(Type *type, UInt32 qual);
|
|
|
|
extern HashNameNode *CMangler_ConversionFuncName(Type *type, UInt32 qual);
|
2023-01-10 11:05:21 +00:00
|
|
|
extern HashNameNode *CMangler_GetCovariantFunctionName(Object *dobj, TypeClass *theclass);
|
2022-11-07 03:06:21 +00:00
|
|
|
extern HashNameNode *CMangler_GetLinkName(Object *obj);
|
|
|
|
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=reset
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|