| // { dg-do assemble } |
| // prms-id: 3538 |
| |
| // This tests for an ambiguous conversion of the this pointer (going |
| // down to DECL_CONTEXT of a FUNCTION_DECL. |
| |
| class ccObjectInfo |
| { |
| public: |
| virtual const ccObjectInfo& repInvariant (int); |
| }; |
| |
| template<class T> |
| class ccHandle : public ccObjectInfo |
| { |
| protected: |
| T* p; |
| public: |
| virtual const ccObjectInfo& repInvariant (int); |
| }; |
| |
| template <class T> |
| const ccObjectInfo& ccHandle<T>::repInvariant (int) |
| { return p->repInvariant(1); } |
| |
| class ccHandleBase : public ccObjectInfo |
| {}; |
| |
| class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo // { dg-warning "" } |
| { |
| public: |
| virtual const ccObjectInfo& repInvariant (int); |
| }; |
| |
| class ccCircleHdl : public ccHandle <cc_CircleHdl> {}; |