digitalmars.D.learn - Help with C++
- Ary Manzana (20/20) Apr 02 2012 Hi,
- Dmitry Olshansky (7/18) Apr 02 2012 Looks like a link-time breakage, i.e. some object file compiled against
- Ary Manzana (2/28) Apr 02 2012 Yes, that was it. Thanks!
Hi, I'm trying to make some additions to DMD. First I want to add a virtual function: virtual void emitLink(OutBuffer *buf) to the struct Type. I did that. Then on doc.c I implement it empty: void Type::emitLink(OutBuffer *buf) { } Then I use it somewhere, like in AliasDeclaration::toDocBuffer: type->emitLink(buf); I compile it, it's fine. When I run DMD with the -D switch I get: Bus error: 10 I thought maybe the type is null, so: if (type) type->emitLink(buf); But no luck. I tried to copy the prototype of: virtual TypeBasic *isTypeBasic() without luck. What am I doing wrong? Thanks, Ary
Apr 02 2012
On 02.04.2012 18:27, Ary Manzana wrote:Hi, I'm trying to make some additions to DMD. First I want to add a virtual function: virtual void emitLink(OutBuffer *buf) to the struct Type. I did that. Then on doc.c I implement it empty: void Type::emitLink(OutBuffer *buf) { } Then I use it somewhere, like in AliasDeclaration::toDocBuffer: type->emitLink(buf); I compile it, it's fine. When I run DMD with the -D switch I get: Bus error: 10Looks like a link-time breakage, i.e. some object file compiled against an older version of header/src and consequently older v-table. Maybe the dmd makefile is faulty and doesn't trigger proper rebuilds, do a 'make clean' to be sure. -- Dmitry Olshansky
Apr 02 2012
On 4/3/12 4:01 AM, Dmitry Olshansky wrote:On 02.04.2012 18:27, Ary Manzana wrote:Yes, that was it. Thanks!Hi, I'm trying to make some additions to DMD. First I want to add a virtual function: virtual void emitLink(OutBuffer *buf) to the struct Type. I did that. Then on doc.c I implement it empty: void Type::emitLink(OutBuffer *buf) { } Then I use it somewhere, like in AliasDeclaration::toDocBuffer: type->emitLink(buf); I compile it, it's fine. When I run DMD with the -D switch I get: Bus error: 10Looks like a link-time breakage, i.e. some object file compiled against an older version of header/src and consequently older v-table. Maybe the dmd makefile is faulty and doesn't trigger proper rebuilds, do a 'make clean' to be sure.
Apr 02 2012