%module template_virtual

// Submitted by Marcelo Matus  
// assertion emitted with templates + derivation + pure virtual member
// allocate.cxx:47: int Allocate::is_abstract_inherit(Node*, Node*):
// Assertion `dn' failed.
 
%inline %{
 
    template <class T>
    class A
    {
    public:
      virtual ~A() { }

      virtual void say_hi() = 0; // only fails with pure virtual methods
 
      virtual void say_hello() {} // this works fine
 
    protected:
      A() { }  // defined protected as swig generates constructor by default
    };
 
    template <class T>
    class B : public A<T>
    {
    protected:
      B() { } // defined protected as swig generates constructor by default
    };
 
%}
 
%template(A_int) A<int>;
%template(B_int) B<int>;  // !!!! it crashes right here !!!!!                       
