From fd73072371f789cd710f4619bdeef11302abcc10 Mon Sep 17 00:00:00 2001 From: Alexey Prokhin Date: Tue, 2 Nov 2010 20:10:52 +0300 Subject: [PATCH] Fixed undefined references to methods without body. --- druntime.patch | 11 +---------- ir/irclass.cpp | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/druntime.patch b/druntime.patch index c9ad7d28..ef1e24a8 100644 --- a/druntime.patch +++ b/druntime.patch @@ -907,7 +907,7 @@ diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch. diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch.h' -x Makefile -x '*.rej' -x '*~' -x '*.log' -x .svn -x '*pro.user' -x .directory -x cmake_install -x CMakeFiles -x .preprocessed.tmp -x 'Makefile.*' -x '*.orig' -- druntime-orig/src/object_.d druntime/src/object_.d --- druntime-orig/src/object_.d 2010-09-03 12:28:52.000000000 +0400 -+++ druntime/src/object_.d 2010-11-02 16:35:18.353360002 +0300 ++++ druntime/src/object_.d 2010-11-02 19:34:56.773360001 +0300 @@ -1040,7 +1040,13 @@ override size_t tsize() { return base.tsize(); } override void swap(void *p1, void *p2) { return base.swap(p1, p2); } @@ -923,15 +923,6 @@ diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch. override uint flags() { return base.flags(); } override void[] init() { return base.init(); } -@@ -1073,7 +1079,7 @@ - - abstract class MemberInfo - { -- string name(); -+ string name() { return ""; }; // LDC: FIXME: - } - - class MemberInfo_field : MemberInfo @@ -1663,7 +1669,6 @@ { int len = 0; diff --git a/ir/irclass.cpp b/ir/irclass.cpp index b92854c0..ea3ff981 100644 --- a/ir/irclass.cpp +++ b/ir/irclass.cpp @@ -159,7 +159,7 @@ LLConstant * IrStruct::getVtblInit() FuncDeclaration* fd = dsym->isFuncDeclaration(); assert(fd && "vtbl entry not a function"); - if (fd->isAbstract() && !fd->fbody) + if (cd->isAbstract() || (fd->isAbstract() && !fd->fbody)) { c = getNullValue(DtoType(fd->type->pointerTo())); }