Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / warn / Woverloaded-virt7.C
blob39b0899c2d29b8074ff62fa40c1c69b2467bebe1
1 // PR c++/109918 - Test different CV-quals, usage of typedefs, and templates
2 // { dg-do compile }
3 // { dg-additional-options -Woverloaded-virtual }
5 struct A {
6   virtual operator char() { return 'a'; }
7   virtual operator char() const { return 'b'; } // { dg-warning "was hidden" }
8   virtual operator int() { return 42; }
9 };
11 struct B : public A {
12   operator char() { return 'A'; } // { dg-note "operator char()" }
13   operator int() { return 43; }
16 typedef char MyChar;
17 struct C : public A {
18   operator MyChar() { return 'A'; } // { dg-note "operator MyChar()" }
19   operator int() { return 43; }
22 struct D : public A {
23   template<class T>
24   operator T() { return T(); }
26 int d = D();
28 struct AA {
29   virtual char func(char) { return 'a'; }
30   virtual char func(char) const { return 'b'; } // { dg-warning "was hidden" }
31   virtual int func(int) { return 42; }
34 struct BB : public AA {
35   char func(char) { return 'A'; } // { dg-note "by" }
36   int func(int) { return 43; }