Mercurial > projects > ldc
diff dmd/mtype.h @ 1228:79758fd2f48a
Added Doxygen file.
Completely seperated type and symbol generation. Should fix a lot of bugs, but is not yet 100% complete.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Wed, 15 Apr 2009 20:06:25 +0200 |
parents | 3251ce06c820 |
children | 465a77c904d4 |
line wrap: on
line diff
--- a/dmd/mtype.h Mon Apr 13 17:42:36 2009 +0200 +++ b/dmd/mtype.h Wed Apr 15 20:06:25 2009 +0200 @@ -219,7 +219,8 @@ virtual d_uns64 size(Loc loc); virtual unsigned alignsize(); virtual Type *semantic(Loc loc, Scope *sc); - virtual void toDecoBuffer(OutBuffer *buf); + // append the mangleof or a string uniquely identifying this type to buf + virtual void toDecoBuffer(OutBuffer *buf, bool mangle); Type *merge(); virtual void toCBuffer(OutBuffer *buf, Identifier *ident, HdrGenState *hgs); virtual void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); @@ -336,7 +337,7 @@ unsigned alignsize(); Type *semantic(Loc loc, Scope *sc); void resolve(Loc loc, Scope *sc, Expression **pe, Type **pt, Dsymbol **ps); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); int isString(); @@ -367,7 +368,7 @@ d_uns64 size(Loc loc); unsigned alignsize(); Type *semantic(Loc loc, Scope *sc); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); int isString(); @@ -394,7 +395,7 @@ d_uns64 size(Loc loc); Type *semantic(Loc loc, Scope *sc); void resolve(Loc loc, Scope *sc, Expression **pe, Type **pt, Dsymbol **ps); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); Expression *defaultInit(Loc loc); @@ -462,7 +463,7 @@ TypeFunction(Arguments *parameters, Type *treturn, int varargs, enum LINK linkage); Type *syntaxCopy(); Type *semantic(Loc loc, Scope *sc); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer(OutBuffer *buf, Identifier *ident, HdrGenState *hgs); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); MATCH deduceType(Scope *sc, Type *tparam, TemplateParameters *parameters, Objects *dedtypes); @@ -481,6 +482,8 @@ #elif IN_LLVM // LDC IrFuncTy fty; + + FuncDeclaration* funcdecl; #endif }; @@ -525,7 +528,7 @@ TypeIdentifier(Loc loc, Identifier *ident); Type *syntaxCopy(); //char *toChars(); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); void resolve(Loc loc, Scope *sc, Expression **pe, Type **pt, Dsymbol **ps); Dsymbol *toDsymbol(Scope *sc); @@ -544,7 +547,7 @@ TypeInstance(Loc loc, TemplateInstance *tempinst); Type *syntaxCopy(); //char *toChars(); - //void toDecoBuffer(OutBuffer *buf); + //void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); void resolve(Loc loc, Scope *sc, Expression **pe, Type **pt, Dsymbol **ps); Type *semantic(Loc loc, Scope *sc); @@ -575,7 +578,7 @@ Type *syntaxCopy(); Type *semantic(Loc loc, Scope *sc); Dsymbol *toDsymbol(Scope *sc); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); unsigned memalign(unsigned salign); @@ -610,7 +613,7 @@ Type *syntaxCopy(); Type *semantic(Loc loc, Scope *sc); Dsymbol *toDsymbol(Scope *sc); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); Expression *getProperty(Loc loc, Identifier *ident); @@ -642,7 +645,7 @@ char *toChars(); Type *semantic(Loc loc, Scope *sc); Dsymbol *toDsymbol(Scope *sc); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); Expression *getProperty(Loc loc, Identifier *ident); @@ -682,7 +685,7 @@ Type *syntaxCopy(); Type *semantic(Loc loc, Scope *sc); Dsymbol *toDsymbol(Scope *sc); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); Expression *dotExp(Scope *sc, Expression *e, Identifier *ident); ClassDeclaration *isClassHandle(); @@ -714,7 +717,7 @@ int equals(Object *o); Type *reliesOnTident(); void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); Expression *getProperty(Loc loc, Identifier *ident); TypeInfoDeclaration *getTypeInfoDeclaration(); }; @@ -746,11 +749,11 @@ Argument(unsigned storageClass, Type *type, Identifier *ident, Expression *defaultArg); Argument *syntaxCopy(); Type *isLazyArray(); - void toDecoBuffer(OutBuffer *buf); + void toDecoBuffer(OutBuffer *buf, bool mangle); static Arguments *arraySyntaxCopy(Arguments *args); static char *argsTypesToChars(Arguments *args, int varargs); static void argsToCBuffer(OutBuffer *buf, HdrGenState *hgs, Arguments *arguments, int varargs); - static void argsToDecoBuffer(OutBuffer *buf, Arguments *arguments); + static void argsToDecoBuffer(OutBuffer *buf, Arguments *arguments, bool mangle); static size_t dim(Arguments *arguments); static Argument *getNth(Arguments *arguments, size_t nth, size_t *pn = NULL); };