changeset 190:36044016709a trunk

[svn r206] Fixed some interfaceInfo related issues, closes #44
author lindquist
date Mon, 12 May 2008 14:32:29 +0200
parents 3aed08fb64f4
children 2900754a6989
files gen/classes.cpp llvmdc.kdevelop.filelist
diffstat 2 files changed, 5 insertions(+), 13 deletions(-) [+]
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
     {
--- a/llvmdc.kdevelop.filelist	Sat May 10 19:00:11 2008 +0200
+++ b/llvmdc.kdevelop.filelist	Mon May 12 14:32:29 2008 +0200
@@ -292,8 +292,6 @@
 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/virtcall.d
 test/with1.d
 tester.d
+tests
+tests/findregressions.d