[svn r152] Relates to ticket #34. Always emit class definition if it is a template instance. Linkage still needs to be fixed.

This commit is contained in:
Christian Kamm
2008-03-13 18:37:52 +01:00
parent 1af2b2169a
commit de63966a59

View File

@@ -346,7 +346,7 @@ void DtoDeclareClass(ClassDeclaration* cd)
gIR->classes.push_back(cd);
bool needs_definition = false;
if (cd->getModule() == gIR->dmodule) {
if (cd->getModule() == gIR->dmodule || DtoIsTemplateInstance(cd)) {
needs_definition = true;
}
@@ -708,7 +708,7 @@ void DtoDefineClass(ClassDeclaration* cd)
assert(cd->type->ty == Tclass);
TypeClass* ts = (TypeClass*)cd->type;
if (cd->getModule() == gIR->dmodule) {
if (cd->getModule() == gIR->dmodule || DtoIsTemplateInstance(cd)) {
// interfaces don't have initializers
// neither do abstract classes
if (!cd->isInterfaceDeclaration() && !cd->isAbstract())