1e01aa904Sopenharmony_ci// This is a class that, when #included in a .cc file will generate a
2e01aa904Sopenharmony_ci// dwarf representation that is declaration-only class because the all
3e01aa904Sopenharmony_ci// of the methods of the class are inline virtual methods but one.
4e01aa904Sopenharmony_ci// And the one virtual method that is not inline is not defined.  So
5e01aa904Sopenharmony_ci// the .cc file that is going to define that method is going to see
6e01aa904Sopenharmony_ci// the class as being defined, and that file will also have the
7e01aa904Sopenharmony_ci// definition of the vtable.
8e01aa904Sopenharmony_ciclass non_defined_class
9e01aa904Sopenharmony_ci{
10e01aa904Sopenharmony_ci public:
11e01aa904Sopenharmony_ci  non_defined_class(){};
12e01aa904Sopenharmony_ci  virtual ~non_defined_class(){}
13e01aa904Sopenharmony_ci  virtual int virtual_func_inserted(){return 0;};
14e01aa904Sopenharmony_ci  virtual int virtual_func1();
15e01aa904Sopenharmony_ci  virtual int virtual_func0(){return 0;}
16e01aa904Sopenharmony_ci};
17e01aa904Sopenharmony_ci
18e01aa904Sopenharmony_ciint private_function(non_defined_class *);
19