diff dmd/mtype.h @ 1367:8026319762be

Merged DMD 1.045 !!!
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Sat, 16 May 2009 22:21:31 +0200
parents 46f6365a50d7
children 229e02867307
line wrap: on
line diff
--- a/dmd/mtype.h	Sat May 16 18:37:16 2009 +0200
+++ b/dmd/mtype.h	Sat May 16 22:21:31 2009 +0200
@@ -222,6 +222,7 @@
     // append the mangleof or a string uniquely identifying this type to buf
     virtual void toDecoBuffer(OutBuffer *buf, bool mangle);
     Type *merge();
+    Type *merge2();
     virtual void toCBuffer(OutBuffer *buf, Identifier *ident, HdrGenState *hgs);
     virtual void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
     void toCBuffer3(OutBuffer *buf, HdrGenState *hgs, int mod);
@@ -249,7 +250,7 @@
     virtual Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
     virtual unsigned memalign(unsigned salign);
     virtual Expression *defaultInit(Loc loc = 0);
-    virtual int isZeroInit();		// if initializer is 0
+    virtual int isZeroInit(Loc loc = 0);		// if initializer is 0
 #if IN_DMD
     virtual dt_t **toDt(dt_t **pdt);
 #endif
@@ -310,7 +311,7 @@
     int isunsigned();
     MATCH implicitConvTo(Type *to);
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     int builtinTypeInfo();
 
     // For eliminating dynamic_cast
@@ -338,7 +339,7 @@
     void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
     Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
     int isString();
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     unsigned memalign(unsigned salign);
     MATCH implicitConvTo(Type *to);
     Expression *defaultInit(Loc loc);
@@ -369,7 +370,7 @@
     void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
     Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
     int isString();
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     int checkBoolean();
     MATCH implicitConvTo(Type *to);
     Expression *defaultInit(Loc loc);
@@ -397,7 +398,7 @@
     Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
     Expression *defaultInit(Loc loc);
     MATCH deduceType(Scope *sc, Type *tparam, TemplateParameters *parameters, Objects *dedtypes);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     int checkBoolean();
     TypeInfoDeclaration *getTypeInfoDeclaration();
     int hasPointers();
@@ -422,7 +423,7 @@
     // LDC: pointers are unsigned
     int isunsigned() { return TRUE; };
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     TypeInfoDeclaration *getTypeInfoDeclaration();
     int hasPointers();
 
@@ -439,7 +440,7 @@
     void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
     Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
 };
 
 enum RET
@@ -493,7 +494,7 @@
     unsigned alignsize(); // added in LDC
     void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     int checkBoolean();
     TypeInfoDeclaration *getTypeInfoDeclaration();
     Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
@@ -580,7 +581,7 @@
     Expression *dotExp(Scope *sc, Expression *e, Identifier *ident);
     unsigned memalign(unsigned salign);
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     int checkBoolean();
 #if IN_DMD
     dt_t **toDt(dt_t **pdt);
@@ -621,7 +622,7 @@
     MATCH implicitConvTo(Type *to);
     Type *toBasetype();
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     MATCH deduceType(Scope *sc, Type *tparam, TemplateParameters *parameters, Objects *dedtypes);
     TypeInfoDeclaration *getTypeInfoDeclaration();
     int hasPointers();
@@ -658,7 +659,7 @@
     Type *toBasetype();
     MATCH implicitConvTo(Type *to);
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
 #if IN_DMD
     dt_t **toDt(dt_t **pdt);
 #endif
@@ -689,12 +690,20 @@
     int isBaseOf(Type *t, int *poffset);
     MATCH implicitConvTo(Type *to);
     Expression *defaultInit(Loc loc);
-    int isZeroInit();
+    int isZeroInit(Loc loc);
     MATCH deduceType(Scope *sc, Type *tparam, TemplateParameters *parameters, Objects *dedtypes);
     int isauto();
     int checkBoolean();
     TypeInfoDeclaration *getTypeInfoDeclaration();
     int hasPointers();
+    int builtinTypeInfo();
+#if DMDV2
+    Type *toHeadMutable();
+    MATCH constConv(Type *to);
+#if TARGET_LINUX || TARGET_OSX
+    void toCppMangle(OutBuffer *buf, CppMangleState *cms);
+#endif
+#endif
 
 #if IN_DMD
     type *toCtype();