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);