diff dmd/func.c @ 19:788401029ecf trunk

[svn r23] * Updated to DMD 1.021
author lindquist
date Thu, 04 Oct 2007 03:42:56 +0200
parents 37a4fdab33fc
children 3cfcb944304e
line wrap: on
line diff
--- a/dmd/func.c	Thu Oct 04 01:47:53 2007 +0200
+++ b/dmd/func.c	Thu Oct 04 03:42:56 2007 +0200
@@ -255,7 +255,7 @@
 	if (!isVirtual())
 	{
 	    //printf("\tnot virtual\n");
-	    return;
+	    goto Ldone;
 	}
 
 	// Find index of existing function in vtbl[] to override
@@ -405,8 +405,8 @@
 #if 0
 				if (offset)
 				    ti = fdv->type;
-				else if (type->next->ty == Tclass)
-				{   ClassDeclaration *cdn = ((TypeClass *)type->next)->sym;
+				else if (type->nextOf()->ty == Tclass)
+				{   ClassDeclaration *cdn = ((TypeClass *)type->nextOf())->sym;
 				    if (cdn && cdn->sizeok != 1)
 					ti = fdv->type;
 				}
@@ -480,8 +480,8 @@
 	    {
 		Argument *arg0 = Argument::getNth(f->parameters, 0);
 		if (arg0->type->ty != Tarray ||
-		    arg0->type->next->ty != Tarray ||
-		    arg0->type->next->next->ty != Tchar ||
+		    arg0->type->nextOf()->ty != Tarray ||
+		    arg0->type->nextOf()->nextOf()->ty != Tchar ||
 		    arg0->storageClass & (STCout | STCref | STClazy))
 		    goto Lmainerr;
 		break;
@@ -526,6 +526,7 @@
 	}
     }
 
+Ldone:
     /* Save scope for possible later use (if we need the
      * function internals)
      */
@@ -2185,7 +2186,8 @@
 /********************************* StaticCtorDeclaration ****************************/
 
 StaticCtorDeclaration::StaticCtorDeclaration(Loc loc, Loc endloc)
-    : FuncDeclaration(loc, endloc, Id::staticCtor, STCstatic, NULL)
+    : FuncDeclaration(loc, endloc,
+      Identifier::generateId("_staticCtor"), STCstatic, NULL)
 {
 }
 
@@ -2257,7 +2259,8 @@
 /********************************* StaticDtorDeclaration ****************************/
 
 StaticDtorDeclaration::StaticDtorDeclaration(Loc loc, Loc endloc)
-    : FuncDeclaration(loc, endloc, Id::staticDtor, STCstatic, NULL)
+    : FuncDeclaration(loc, endloc,
+      Identifier::generateId("_staticDtor"), STCstatic, NULL)
 {
 }