From 4d7af013749db5038adbe28681ad779d4658b4f8 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Sat, 25 Oct 2008 22:07:20 +0200 Subject: [PATCH] Fix double field toObjFile for structs with AttribDecls. --- gen/structs.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/gen/structs.cpp b/gen/structs.cpp index 3dd6318d..03f58573 100644 --- a/gen/structs.cpp +++ b/gen/structs.cpp @@ -108,19 +108,12 @@ void DtoResolveStruct(StructDeclaration* sd) irstruct->packed = ispacked; - // fields - Array* arr = &sd->fields; - for (int k=0; k < arr->dim; k++) { - VarDeclaration* v = (VarDeclaration*)arr->data[k]; - v->toObjFile(0); // TODO: multiobj - } - bool thisModule = false; if (sd->getModule() == gIR->dmodule) thisModule = true; - // methods - arr = sd->members; + // methods, fields + Array* arr = sd->members; for (int k=0; k < arr->dim; k++) { Dsymbol* s = (Dsymbol*)arr->data[k]; if (FuncDeclaration* fd = s->isFuncDeclaration()) { @@ -128,7 +121,9 @@ void DtoResolveStruct(StructDeclaration* sd) fd->toObjFile(0); // TODO: multiobj } } - else if (s->isAttribDeclaration()) { + else if (s->isAttribDeclaration() || + s->isVarDeclaration() || + s->isTemplateMixin()) { s->toObjFile(0); // TODO: multiobj } else {