summaryrefslogtreecommitdiff
path: root/includes/compiler/CMangler.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/compiler/CMangler.h')
-rw-r--r--includes/compiler/CMangler.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/includes/compiler/CMangler.h b/includes/compiler/CMangler.h
new file mode 100644
index 0000000..f08ecd8
--- /dev/null
+++ b/includes/compiler/CMangler.h
@@ -0,0 +1,35 @@
+#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);
+extern char *CMangler_GetOperator(HashNameNode *opname);
+extern HashNameNode *CMangler_OperatorName(short token);
+extern HashNameNode *CMangler_VTableName(TypeClass *tclass);
+extern HashNameNode *CMangler_RTTIObjectName(Type *type, UInt32 qual);
+extern HashNameNode *CMangler_ThunkName(Object *obj, int a, int b, int c);
+extern HashNameNode *CMangler_TemplateInstanceName(HashNameNode *basename, TemplArg *args);
+extern void CMangler_MangleType(Type *type, UInt32 qual);
+extern HashNameNode *CMangler_ConversionFuncName(Type *type, UInt32 qual);
+extern HashNameNode *CMangler_GetCovariantFunctionName(Object *obj, Type *type);
+extern HashNameNode *CMangler_GetLinkName(Object *obj);
+
+#ifdef __MWERKS__
+#pragma options align=reset
+#endif
+
+#endif