[Issue 15626] extern(C++) calling crash
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Sat Jan 30 00:15:06 PST 2016
    
    
  
https://issues.dlang.org/show_bug.cgi?id=15626
--- Comment #2 from Walter Bright <bugzilla at digitalmars.com> ---
Stripping away the unnecessary template and complex names:
---------- D -----------------
extern(C++)
{
    class C { }
    interface I
    {
        void f();
    }
    abstract class Base : I
    {
        int instance;
    }
    void test(Base b)
    {
        b.f();
    }
    void mainx();
}
int main()
{
    mainx();
    return 0;
}
------------- C++ ------------
#include <stdio.h>
class C { };
class I
{
    virtual void f() = 0;
};
class Base : public I
{
  public:
    int pInstance;
    Base() { pInstance = 0xBAADF00D; }
};
class Derived : public Base
{
  public:
    void f() { printf("!!"); }
};
void test(Base *b);
void mainx()
{
    Derived *d = new Derived;
    test(d);
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list