1 /* { dg-do compile } */
2 /* { dg-options "-fdump-ada-spec" } */
3 
4 class Root  {
5 public:
6    virtual void copyFrom(const Root& property) = 0;
7 };
8 
9 class DT : Root {
10    virtual void copyFrom (const Root& property);
11    /* Although in C++ the type of argument Root is the parent type
12       "Root", in order to properly override this primitive in Ada
13       the profile of the generated function must be the derived
14       type "DT" */
15 };
16 
17 /* { dg-final { scan-ada-spec "Root'Class" } } */
18 /* { dg-final { cleanup-ada-spec } } */
19