summaryrefslogtreecommitdiff
path: root/includes/compiler/CMangler.h
blob: f08ecd8f66b72b20b407031b790975afdd8e1895 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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