comparison gen/toobj.cpp @ 1163:ea52660f828b

Emit function bodies before generating the module info to make sure static ctors are collected correctly. Fixes run/constructor_03.
author Christian Kamm <kamm incasoftware de>
date Sat, 28 Mar 2009 20:45:33 +0100
parents f528e55fb32f
children e40c65bd8c5d
comparison
equal deleted inserted replaced
1162:0424e7dfadb1 1163:ea52660f828b
142 Dsymbol* dsym = (Dsymbol*)(members->data[k]); 142 Dsymbol* dsym = (Dsymbol*)(members->data[k]);
143 assert(dsym); 143 assert(dsym);
144 dsym->codegen(sir); 144 dsym->codegen(sir);
145 } 145 }
146 146
147 // emit function bodies
148 sir->emitFunctionBodies();
149
147 // generate ModuleInfo 150 // generate ModuleInfo
148 genmoduleinfo(); 151 genmoduleinfo();
149
150 // emit function bodies
151 sir->emitFunctionBodies();
152 152
153 // emit usedArray 153 // emit usedArray
154 if (!ir.usedArray.empty()) 154 if (!ir.usedArray.empty())
155 { 155 {
156 const LLArrayType* usedTy = LLArrayType::get(getVoidPtrType(), ir.usedArray.size()); 156 const LLArrayType* usedTy = LLArrayType::get(getVoidPtrType(), ir.usedArray.size());