Mercurial > projects > ldc
diff gen/classes.cpp @ 190:36044016709a trunk
[svn r206] Fixed some interfaceInfo related issues, closes #44
author | lindquist |
---|---|
date | Mon, 12 May 2008 14:32:29 +0200 |
parents | cea8dcfa76df |
children | 67ed21bf16af |
line wrap: on
line diff
--- a/gen/classes.cpp Sat May 10 19:00:11 2008 +0200 +++ b/gen/classes.cpp Mon May 12 14:32:29 2008 +0200 @@ -434,9 +434,6 @@ if (cd->ir.initialized) return; cd->ir.initialized = true; - if (cd->isInterfaceDeclaration()) - return; // nothing to do - Logger::println("DtoConstInitClass(%s): %s", cd->toPrettyChars(), cd->loc.toChars()); LOG_SCOPE; @@ -463,15 +460,10 @@ std::vector<llvm::Constant*> fieldinits; // first field is always the vtable - if (cd->isAbstract()) + if (cd->isAbstract() || cd->isInterfaceDeclaration()) { - fieldinits.push_back( - llvm::ConstantPointerNull::get( - getPtrToType( - ts->ir.vtblType->get() - ) - ) - ); + const llvm::Type* ptrTy = getPtrToType(ts->ir.vtblType->get()); + fieldinits.push_back(llvm::Constant::getNullValue(ptrTy)); } else {