From f1c26350ca00e755eba276a01e5a0a656808f3a6 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Mon, 12 May 2008 14:32:29 +0200 Subject: [PATCH] [svn r206] Fixed some interfaceInfo related issues, closes #44 --- gen/classes.cpp | 14 +++----------- llvmdc.kdevelop.filelist | 4 ++-- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/gen/classes.cpp b/gen/classes.cpp index 264bb014..a146cee4 100644 --- a/gen/classes.cpp +++ b/gen/classes.cpp @@ -434,9 +434,6 @@ void DtoConstInitClass(ClassDeclaration* cd) 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 @@ void DtoConstInitClass(ClassDeclaration* cd) std::vector 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 { diff --git a/llvmdc.kdevelop.filelist b/llvmdc.kdevelop.filelist index 85614498..1c01e38a 100644 --- a/llvmdc.kdevelop.filelist +++ b/llvmdc.kdevelop.filelist @@ -292,8 +292,6 @@ tango/lib/compiler/llvmdc/mem.d tango/lib/compiler/llvmdc/memory.d tango/lib/compiler/llvmdc/monitor.c tango/lib/compiler/llvmdc/qsort2.d -tango/lib/compiler/llvmdc/std -tango/lib/compiler/llvmdc/std/intrinsic.d tango/lib/compiler/llvmdc/switch.d tango/lib/compiler/llvmdc/typeinfo tango/lib/compiler/llvmdc/typeinfo/ti_AC.d @@ -1029,3 +1027,5 @@ test/vararg5.d test/virtcall.d test/with1.d tester.d +tests +tests/findregressions.d