Mercurial > projects > ddmd
diff dmd/FuncDeclaration.d @ 89:37b95c347975
Fixed an obscure bug with i variable being reused
author | korDen |
---|---|
date | Mon, 30 Aug 2010 23:25:50 +0400 |
parents | 23280d154c5b |
children | 21a53563c840 |
line wrap: on
line diff
--- a/dmd/FuncDeclaration.d Mon Aug 30 19:58:14 2010 +0400 +++ b/dmd/FuncDeclaration.d Mon Aug 30 23:25:50 2010 +0400 @@ -3162,7 +3162,7 @@ FuncDeclaration func = this; ClassDeclaration cd = func.parent.isClassDeclaration(); int reverse; - int i; + int has_arguments; //printf("FuncDeclaration.toObjFile(%p, %s.%s)\n", func, parent.toChars(), func.toChars()); @@ -3355,9 +3355,10 @@ } if (parameters) { - foreach (size_t i, Dsymbol s3; parameters) + size_t i = 0; + for ( ; i < parameters.dim; ++i) { - auto v = cast(VarDeclaration)s3; + auto v = cast(VarDeclaration)parameters[i]; debug { if (v.csym) writef("parameter '%s'\n", v.toChars()); @@ -3371,7 +3372,7 @@ if (reverse) { // Reverse params[] entries - for (i = 0; i < pi/2; i++) + for (size_t i = 0; i < pi/2; i++) { Symbol* sptmp = params[i]; params[i] = params[pi - 1 - i]; @@ -3416,7 +3417,7 @@ params[1] = sp; } - for (i = 0; i < pi; i++) + for (size_t i = 0; i < pi; i++) { Symbol *sp = params[i]; sp.Sclass = SC.SCparameter; @@ -3578,7 +3579,7 @@ obj_export(s, Poffset); } - for (i = 0; i < irs.deferToObj.dim; i++) + for (size_t i = 0; i < irs.deferToObj.dim; i++) { Dsymbol ss = cast(Dsymbol)irs.deferToObj.data[i]; ss.toObjFile(0);