diff 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
line wrap: on
line diff
--- a/gen/irstate.h	Fri Jun 05 02:54:34 2009 +0200
+++ b/gen/irstate.h	Sat Jun 06 09:47:32 2009 +0200
@@ -158,6 +158,13 @@
     FuncDeclVector ctors;
     FuncDeclVector dtors;
     FuncDeclVector unitTests;
+    
+    // all template instances that had members emitted
+    // currently only filled for singleobj
+    // used to make sure the complete template instance gets emitted in the
+    // first file that touches a member, see #318
+    typedef std::set<TemplateInstance*> TemplateInstanceSet;
+    TemplateInstanceSet seenTemplateInstances;
 
     // for inline asm
     IRAsmBlock* asmBlock;