Mercurial > projects > ldc
diff gen/structs.cpp @ 1155:ba9d6292572a
Fixed forward reference problem in struct methods on x86-64.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Sat, 28 Mar 2009 09:00:32 +0100 |
parents | 3cf0066e6faf |
children | 79758fd2f48a |
line wrap: on
line diff
--- a/gen/structs.cpp Sat Mar 28 08:25:58 2009 +0100 +++ b/gen/structs.cpp Sat Mar 28 09:00:32 2009 +0100 @@ -14,6 +14,7 @@ #include "gen/logger.h" #include "gen/structs.h" #include "gen/dvalue.h" +#include "gen/functions.h" #include "ir/irstruct.h" @@ -583,6 +584,14 @@ gIR->module->addTypeName(sd->mangle(),ST); } + // emit functions + size_t n = irstruct->structFuncs.size(); + for (size_t i = 0; i < n; ++i) + { + DtoResolveFunction(irstruct->structFuncs[i]); + } + irstruct->structFuncs.clear(); + gIR->structs.pop_back(); DtoDeclareStruct(sd);