%module virtual_vs_nonvirtual_base; // Regression test for SF#3124665. %inline { class SimpleVirtual { public: virtual int implementMe() = 0; virtual ~SimpleVirtual() {} }; class SimpleNonVirtual { public: int dummy() { return 0; } virtual ~SimpleNonVirtual() {} }; class SimpleReturnClass { public: SimpleReturnClass(int i) : value(i) {}; int get() const { return value; } private: int value; }; class SimpleClassFail : public SimpleVirtual { public: SimpleClassFail() : inner(10) {} SimpleReturnClass getInner() { return inner; } virtual int implementMe() { return 0; } private: SimpleReturnClass inner; }; class SimpleClassWork : public SimpleNonVirtual { public: SimpleClassWork() : inner(10) {} SimpleReturnClass getInner() { return inner; } virtual int implementMe() { return 0; } private: SimpleReturnClass inner; }; }