comparison gen/toobj.c @ 10:c0f2c47e5034 trunk

[svn r14] Forgot something stupid...y
author lindquist
date Mon, 01 Oct 2007 23:32:29 +0200
parents dafae18f9c08
children d3ee9efe20e2
comparison
equal deleted inserted replaced
9:dafae18f9c08 10:c0f2c47e5034
617 617
618 if (!gIR->queueClassMethods.empty() && gIR->queueClassMethods.back()) { 618 if (!gIR->queueClassMethods.empty() && gIR->queueClassMethods.back()) {
619 Logger::println("queueing %s", toChars()); 619 Logger::println("queueing %s", toChars());
620 assert(!gIR->classmethods.empty()); 620 assert(!gIR->classmethods.empty());
621 gIR->classmethods.back().push_back(this); 621 gIR->classmethods.back().push_back(this);
622 return; // will be generated later when the this parameter has a type 622 return; // we wait with the definition as they might invoke a virtual method and the vtable is not yet complete
623 } 623 }
624
625 if (llvmNeedsDefinition)
626 {
627 624
628 TypeFunction* f = (TypeFunction*)type; 625 TypeFunction* f = (TypeFunction*)type;
629 llvm::FunctionType* functype = llvm::cast<llvm::FunctionType>(f->llvmType); 626 llvm::FunctionType* functype = llvm::cast<llvm::FunctionType>(f->llvmType);
630 627
631 // only members of the current module maybe be defined 628 // only members of the current module maybe be defined
712 new llvm::UnreachableInst(lastbb); 709 new llvm::UnreachableInst(lastbb);
713 } 710 }
714 } 711 }
715 } 712 }
716 713
717 }
718
719 llvmDModule = gIR->dmodule; 714 llvmDModule = gIR->dmodule;
720 715
721 Logger::println("FuncDeclaration done\n"); 716 Logger::println("FuncDeclaration done\n");
722 } 717 }