Mercurial > projects > ldc
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()); |