diff dmd/mtype.h @ 1103:b30fe7e1dbb9

- Updated to DMD frontend 1.041. - Removed dmd/inifile.c , it's not under a free license, replaced with libconfig based config file.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Thu, 12 Mar 2009 20:37:27 +0100
parents dc608dc33081
children 1860414bf3b7
line wrap: on
line diff
--- a/dmd/mtype.h	Thu Mar 12 14:08:57 2009 +0100
+++ b/dmd/mtype.h	Thu Mar 12 20:37:27 2009 +0100
@@ -37,10 +37,12 @@
 struct TypeInfoDeclaration;
 struct Dsymbol;
 struct TemplateInstance;
+struct CppMangleState;
 enum LINK;
 
 struct TypeBasic;
 struct HdrGenState;
+struct Argument;
 
 // Back end
 #if IN_GCC
@@ -99,7 +101,7 @@
     Ttypeof,
     Ttuple,
     Tslice,
-
+    Treturn,
     TMAX
 };
 
@@ -108,13 +110,16 @@
 extern int Tsize_t;
 extern int Tptrdiff_t;
 
+
 struct Type : Object
 {
     TY ty;
-    unsigned char mod;	// modifiers (MODconst, MODinvariant)
+    unsigned char mod;	// modifiers MODxxxx
+	/* pick this order of numbers so switch statements work better
+	 */
 	#define MODconst     1	// type is const
-	#define MODinvariant 2	// type is invariant
-    Type *next;
+	#define MODinvariant 4	// type is invariant
+	#define MODshared    2	// type is shared
     char *deco;
     Type *pto;		// merged pointer to this type
     Type *rto;		// reference to this type
@@ -242,9 +247,11 @@
     virtual Type *reliesOnTident();
     virtual Expression *toExpression();
     virtual int hasPointers();
+    Type *next;
     Type *nextOf() { return next; }
 
     static void error(Loc loc, const char *format, ...);
+    static void warning(Loc loc, const char *format, ...);
 
     // For backend
     virtual unsigned totym();