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: 10
Looks 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








Ary Manzana <ary esperanto.org.ar>