changeset 191:52188e7e3fb5

Fixed deprecated features, now compiles with DMD2.058 Also changed Array allocation policy: Now doesn't reallocate but malloc's, followed by a memcpy (no free). (this fixes a crash while compiling druntime. Same bug in dmd)
author korDen@korDen-pc
date Sun, 25 Mar 2012 03:11:12 +0400
parents 80660782bffe
children eb38fdcb3e62
files dbg/CallStackInfo.d dmd/AndAndExp.d dmd/Array.d dmd/ArrayExp.d dmd/ArrayInitializer.d dmd/BoolExp.d dmd/CallExp.d dmd/Cast.d dmd/CmpExp.d dmd/CommaExp.d dmd/CondExp.d dmd/DsymbolExp.d dmd/Expression.d dmd/ForeachStatement.d dmd/IdentifierExp.d dmd/IdentityExp.d dmd/Import.d dmd/InExp.d dmd/IndexExp.d dmd/NotExp.d dmd/OrOrExp.d dmd/OverExp.d dmd/Parameter.d dmd/Parser.d dmd/PtrExp.d dmd/SliceExp.d dmd/StructLiteralExp.d dmd/ThisExp.d dmd/Type.d dmd/VarExp.d dmd/backend/iasm.d dmd/expression/Add.d dmd/expression/Util.d main.d
diffstat 34 files changed, 100 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/dbg/CallStackInfo.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dbg/CallStackInfo.d	Sun Mar 25 03:11:12 2012 +0400
@@ -210,7 +210,7 @@
 }
 enum EXCEPTION_EXECUTE_HANDLER = 1;
 
-extern(Windows) int UnhandledExceptionHandler(EXCEPTION_POINTERS* e) {
+/*extern(Windows) */int UnhandledExceptionHandler(EXCEPTION_POINTERS* e) {
 	scope CallStackInfo info = new CallStackInfo(e);
 	info.dump();
 
--- a/dmd/AndAndExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/AndAndExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -73,7 +73,7 @@
 		return this;
 	}
 
-	override int isBit()
+	override bool isBit()
 	{
 		assert(false);
 	}
--- a/dmd/Array.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Array.d	Sun Mar 25 03:11:12 2012 +0400
@@ -67,7 +67,13 @@
 		//printf("Array::reserve: size = %d, offset = %d, nbytes = %d\n", size, offset, nbytes);
 		if (allocdim - dim < nentries) {
 			allocdim = dim + nentries;
-			data = cast(void**)GC.realloc(data, allocdim * (*data).sizeof);
+			
+			auto newData = cast(void**)GC.malloc(allocdim * (*data).sizeof);
+			memcpy(newData, data, dim * (*data).sizeof);
+//			GC.free(data);
+			data = newData;
+			
+			//data = cast(void**)GC.realloc(data, allocdim * (*data).sizeof);
 		}
 	}
 	
--- a/dmd/ArrayExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/ArrayExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -83,7 +83,7 @@
 		return e;
 	}
 
-	override int isLvalue()
+	override bool isLvalue()
 	{
 		assert(false);
 	}
--- a/dmd/ArrayInitializer.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/ArrayInitializer.d	Sun Mar 25 03:11:12 2012 +0400
@@ -328,7 +328,7 @@
 
 		scope dts = new Vector!(dt_t*)();
 		uint size;
-		uint length;
+		uint length_;
 		uint i;
 		dt_t* dt;
 		dt_t* d;
@@ -340,7 +340,7 @@
 
 		size = cast(uint)tn.size();
 
-		length = 0;
+		length_ = 0;
 		for (i = 0; i < index.dim; i++)
 		{
 			Expression idx;
@@ -348,16 +348,16 @@
 
 			idx = index[i];
 			if (idx)
-				length = cast(uint)idx.toInteger();
-			//printf("\tindex[%d] = %p, length = %u, dim = %u\n", i, idx, length, dim);
+				length_ = cast(uint)idx.toInteger();
+			//printf("\tindex[%d] = %p, length_ = %u, dim = %u\n", i, idx, length_, dim);
 
-			assert(length < dim);
+			assert(length_ < dim);
 			val = value[i];
 			dt = val.toDt();
-			if (dts[length])
-				error(loc, "duplicate initializations for index %d", length);
-			dts[length] = dt;
-			length++;
+			if (dts[length_])
+				error(loc, "duplicate initializations for index %d", length_);
+			dts[length_] = dt;
+			length_++;
 		}
 
 		Expression edefault = tb.nextOf().defaultInit(Loc(0));
--- a/dmd/BoolExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/BoolExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -57,7 +57,7 @@
 		assert(false);
 	}
 
-	override int isBit()
+	override bool isBit()
 	{
 		return true;
 	}
--- a/dmd/CallExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/CallExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -1165,14 +1165,14 @@
 	}
 	
 version (DMDV2) {
-	override int isLvalue()
+	override bool isLvalue()
 	{
 		//	if (type.toBasetype().ty == Tstruct)
 		//	return 1;
 		Type tb = e1.type.toBasetype();
 		if (tb.ty == Tfunction && (cast(TypeFunction)tb).isref)
-			return 1;		// function returns a reference
-		return 0;
+			return true;		// function returns a reference
+		return false;
 	}
 }
 	override Expression toLvalue(Scope sc, Expression e)
--- a/dmd/Cast.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Cast.d	Sun Mar 25 03:11:12 2012 +0400
@@ -89,6 +89,7 @@
 				case TY.Tuns32:	result = cast(uint)r;	break;
 				case TY.Tint64:	result = cast(long)r;	break;
 				case TY.Tuns64:	result = cast(ulong)r;	break;
+				default: assert(false);
 			}
 
 			e = new IntegerExp(loc, result, type);
--- a/dmd/CmpExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/CmpExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -150,7 +150,7 @@
 		return interpretCommon2(istate, &Cmp);
 	}
 
-	override int isBit()
+	override bool isBit()
 	{
 		assert(false);
 	}
--- a/dmd/CommaExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/CommaExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -59,7 +59,7 @@
 	}
 
 version (DMDV2) {
-    override int isLvalue()
+    override bool isLvalue()
 	{
 		return e2.isLvalue();
 	}
--- a/dmd/CondExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/CondExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -195,7 +195,7 @@
         e2.checkEscapeRef();
     }
     
-    override int isLvalue()
+    override bool isLvalue()
 	{
 		return e1.isLvalue() && e2.isLvalue();
 	}
--- a/dmd/DsymbolExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/DsymbolExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -260,7 +260,7 @@
 		assert(false);
 	}
 
-	override int isLvalue()
+	override bool isLvalue()
 	{
 		assert(false);
 	}
--- a/dmd/Expression.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Expression.d	Sun Mar 25 03:11:12 2012 +0400
@@ -381,11 +381,11 @@
 	}
     
 	/***************************************
-	 * Return !=0 if expression is an lvalue.
+	 * Return true if expression is an lvalue.
 	 */
-    int isLvalue()
+    bool isLvalue()
 	{
-		return 0;
+		return false;
 	}
 
 	/*******************************
@@ -912,7 +912,7 @@
 	/********************************
 	 * Does this expression result in either a 1 or a 0?
 	 */
-	int isBit()
+	bool isBit()
 	{
 		return false;
 	}
--- a/dmd/ForeachStatement.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/ForeachStatement.d	Sun Mar 25 03:11:12 2012 +0400
@@ -671,12 +671,14 @@
 						case TY.Tchar:		flag = 0; break;
 						case TY.Twchar:		flag = 3; break;
 						case TY.Tdchar:		flag = 6; break;
+						default: assert(false);
 					}
 					switch (tnv.ty)
 					{
 						case TY.Tchar:		flag += 0; break;
 						case TY.Twchar:	flag += 1; break;
 						case TY.Tdchar:	flag += 2; break;
+						default: assert(false);
 					}
 					string r = (op == TOK.TOKforeach_reverse) ? "R" : "";
 					int j = sprintf(fdname.ptr, "_aApply%.*s%.*s%zd".ptr, r, 2, fntab[flag].ptr, dim);
--- a/dmd/IdentifierExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/IdentifierExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -171,9 +171,9 @@
 			buf.writestring(ident.toChars());
 	}
 
-	override int isLvalue()
+	override bool isLvalue()
 	{
-		return 1;
+		return true;
 	}
 
 	override Expression toLvalue(Scope sc, Expression e)
--- a/dmd/IdentityExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/IdentityExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -51,7 +51,7 @@
 		return this;
 	}
 
-	override int isBit()
+	override bool isBit()
 	{
 		assert(false);
 	}
--- a/dmd/Import.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Import.d	Sun Mar 25 03:11:12 2012 +0400
@@ -36,7 +36,7 @@
 			case '\\':
 				buf.writebyte('\\');
 			default:
-				buf.writebyte(*fname);
+				buf.writebyte(c);
 				break;
 		}
 	}
--- a/dmd/InExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/InExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -69,9 +69,9 @@
 		return this;
 	}
 
-	override int isBit()
+	override bool isBit()
 	{
-		return 0;
+		return false;
 	}
 
 	override Identifier opId()
--- a/dmd/IndexExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/IndexExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -194,7 +194,7 @@
 		return e;
 	}
 
-	override int isLvalue()
+	override bool isLvalue()
 	{
 		return true;
 	}
--- a/dmd/NotExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/NotExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -55,7 +55,7 @@
 		assert(false);
 	}
 
-	override int isBit()
+	override bool isBit()
 	{
 		assert(false);
 	}
--- a/dmd/OrOrExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/OrOrExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -75,7 +75,7 @@
 		return this;
 	}
 	
-    override int isBit()
+    override bool isBit()
 	{
 		assert(false);
 	}
--- a/dmd/OverExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/OverExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -27,7 +27,7 @@
 		type = Type.tvoid;
 	}
 
-	override int isLvalue()
+	override bool isLvalue()
 	{
 		return true;
 	}
--- a/dmd/Parameter.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Parameter.d	Sun Mar 25 03:11:12 2012 +0400
@@ -97,6 +97,8 @@
 			case STC.STClazy:
 				buf.writeByte('L');
 				break;
+			default:
+				assert(false);
 		}
 static if (false) {
 		int mod = 0x100;
--- a/dmd/Parser.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Parser.d	Sun Mar 25 03:11:12 2012 +0400
@@ -1835,7 +1835,7 @@
     NewDeclaration parseNew()
 	{
 		NewDeclaration f;
-		scope arguments = new Parameters();
+		auto arguments = new Parameters();
 		int varargs;
 		Loc loc = this.loc;
 
@@ -1854,7 +1854,7 @@
     DeleteDeclaration parseDelete()
 	{
 		DeleteDeclaration f;
-		scope Parameters arguments;
+		Parameters arguments;
 		int varargs;
 		Loc loc = this.loc;
 
--- a/dmd/PtrExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/PtrExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -88,9 +88,9 @@
 		return this;
 	}
 
-	override int isLvalue()
+	override bool isLvalue()
 	{
-		return 1;
+		return true;
 	}
 
     override void checkEscapeRef()
--- a/dmd/SliceExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/SliceExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -278,9 +278,9 @@
     }
 
 version (DMDV2) {
-	override int isLvalue()
+	override bool isLvalue()
 	{
-		return 1;
+		return true;
 	}
 }
 	override Expression toLvalue(Scope sc, Expression e)
--- a/dmd/StructLiteralExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/StructLiteralExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -625,9 +625,9 @@
 
 version(DMDV2)
 {
-	override int isLvalue()
+	override bool isLvalue()
 	{
-		return 1;
+		return true;
 	}
 }
 
--- a/dmd/ThisExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/ThisExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -124,9 +124,9 @@
 	}
 
 version (DMDV2) {
-	override int isLvalue()
+	override bool isLvalue()
 	{
-		return 1;
+		return true;
 	}
 }
 	override Expression toLvalue(Scope sc, Expression e)
--- a/dmd/Type.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/Type.d	Sun Mar 25 03:11:12 2012 +0400
@@ -1462,6 +1462,9 @@
 	    L7:
 	        t.swto = this;
 	        break;
+			
+		default:
+			assert(false);
 		}
 
 		check();
@@ -1538,6 +1541,9 @@
 	        if (wto) assert(wto.mod == MOD.MODwild);
 	        if (swto) assert(swto.mod == MOD.MODundefined);
 	        break;
+			
+		default:
+			assert(false);
 		}
 
 		Type tn = nextOf();
@@ -1572,6 +1578,9 @@
 	            case MOD.MODshared | MOD.MODwild:
 		            assert(tn.mod == MOD.MODimmutable || tn.mod == (MOD.MODshared | MOD.MODconst) || tn.mod == (MOD.MODshared | MOD.MODwild));
 					break;
+					
+				default:
+					assert(false);
 			}
 			tn.check();
 		}
@@ -1675,6 +1684,9 @@
 	            case MOD.MODshared | MOD.MODwild:
 		            t = sharedWildOf();
 		            break;
+					
+				default:
+					assert(false);
 			}
 		}
 		return t;
--- a/dmd/VarExp.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/VarExp.d	Sun Mar 25 03:11:12 2012 +0400
@@ -234,11 +234,11 @@
 
 version (DMDV2)
 {
-	override int isLvalue()
+	override bool isLvalue()
 	{
 		if (var.storage_class & STClazy)
-			return 0;
-		return 1;
+			return false;
+		return true;
 	}
 }
 	override Expression toLvalue(Scope sc, Expression e)
--- a/dmd/backend/iasm.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/backend/iasm.d	Sun Mar 25 03:11:12 2012 +0400
@@ -797,6 +797,9 @@
 					goto L386_WARNING2;
 				}
 				break;
+
+			default:
+				assert(false);
 	    }
 	}
 
@@ -923,6 +926,9 @@
 				}
 			}
 			break;
+			
+			default:
+				assert(false);
 		}
 		uint usOpcode = ptb.pptb0.usOpcode;
 
@@ -1122,6 +1128,9 @@
 							pc.IFL2 = FL.FLconst;
 						}
 						break;
+						
+					default:
+						assert(false);
 				}
 			}
 				
@@ -1324,7 +1333,10 @@
 				aoptyTmp = aoptyTable3;
 				uSizemaskTmp = cast(ushort)uSizemaskTable3;
 			}
-			goto L1;	
+			goto L1;
+			
+		default:
+			assert(false);
 	}
 L2:
 
@@ -1547,6 +1559,9 @@
 	//printf("usActual = %d\n", usActual);
 	switch (usActual)
 	{
+		default:
+			assert(false);
+			
 	    case 0:
 			ptbRet = pop.ptb ;
 			goto RETURN_IT;
@@ -2204,6 +2219,8 @@
 			default:
 				if (ASM_GET_uSizemask(popnd1.usFlags) == _8) {
 					switch(popnd1.base.val) {
+						default:
+							assert(false);
 						case _AL:
 						case _AH:
 							usRet |= mAX;
@@ -3070,6 +3087,8 @@
 
     switch (amodTable)
     {
+		default:
+			assert(false);
 		case _normal:		// Normal's match with normals
 			switch(amodOp) {
 				case _normal:
@@ -3712,6 +3731,8 @@
 				{
 					switch (tok_save)
 					{
+						default:
+							assert(false);
 						case TOKgt:
 							o1.disp = o1.disp > o2.disp;
 							break;
--- a/dmd/expression/Add.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/expression/Add.d	Sun Mar 25 03:11:12 2012 +0400
@@ -85,6 +85,7 @@
 			case 6+0:	v = Complex!(real)(c1.re + r2, c1.im);	break;
 			case 6+1:	v = Complex!(real)(c1.re, c1.im + i2);	break;
 			case 6+2:	v = Complex!(real)(c1.re + c2.re, c1.im + c2.im);	break;
+			default: assert(false);
 		}
 		e = new ComplexExp(loc, v, type);
     }
--- a/dmd/expression/Util.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/dmd/expression/Util.d	Sun Mar 25 03:11:12 2012 +0400
@@ -1285,6 +1285,9 @@
 	    if (arg0.op == TOKfloat64)
 		e = new RealExp(Loc(0), fabsl(arg0.toReal()), arg0.type);
 	    break;
+		
+	default:
+		assert(false);
     }
     return e;
 }
--- a/main.d	Sun Mar 25 01:39:46 2012 +0400
+++ b/main.d	Sun Mar 25 03:11:12 2012 +0400
@@ -20,7 +20,7 @@
 import dmd.String;
 import dmd.backend.glue;
 
-import std.stdarg;
+import core.vararg;
 import std.string : toStringz;
 import std.exception;
 
@@ -43,7 +43,7 @@
 	EXIT_SUCCESS = 0,
 }
 
-version = CrashHandler;
+//version = CrashHandler;
 
 version (CrashHandler) {
 version(Linux)
@@ -926,7 +926,7 @@
         else
         {
 			name = p;
-            if (!*name)
+            if (!*name.ptr)
                 goto Linvalid;
         }