| %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; | |
| }; | |
| } |