// { dg-do assemble  }
// Origin: Ian Nixon <ian@tharas.com>

class Action {
public:
  virtual void action () = 0;
};

class Var {
public:

  template<class Base> void Add() {
	struct tmp : public Action {
	  void action () {}
	};
	tmp *tp = new tmp; 
  }

};
