comparison gen/irstate.h @ 1478:4dca8ed9d8b7

Fix #318 by making a list of all seen template instances in a module for singleobj compilation and then making sure they get emitted in their entirety.
author Christian Kamm <kamm incasoftware de>
date Sat, 06 Jun 2009 09:47:32 +0200
parents 3f5ea912149d
children e1e93343fc11
comparison
equal deleted inserted replaced
1477:6023f65a3aee 1478:4dca8ed9d8b7
156 // static ctors/dtors/unittests 156 // static ctors/dtors/unittests
157 typedef std::vector<FuncDeclaration*> FuncDeclVector; 157 typedef std::vector<FuncDeclaration*> FuncDeclVector;
158 FuncDeclVector ctors; 158 FuncDeclVector ctors;
159 FuncDeclVector dtors; 159 FuncDeclVector dtors;
160 FuncDeclVector unitTests; 160 FuncDeclVector unitTests;
161
162 // all template instances that had members emitted
163 // currently only filled for singleobj
164 // used to make sure the complete template instance gets emitted in the
165 // first file that touches a member, see #318
166 typedef std::set<TemplateInstance*> TemplateInstanceSet;
167 TemplateInstanceSet seenTemplateInstances;
161 168
162 // for inline asm 169 // for inline asm
163 IRAsmBlock* asmBlock; 170 IRAsmBlock* asmBlock;
164 std::ostringstream nakedAsm; 171 std::ostringstream nakedAsm;
165 172