1 // PR c++/87357
2 // { dg-do compile }
3 
4 struct B { };
5 
6 struct X : public B {
7   operator X(); // { dg-warning "3:converting .X. to the same type will never use a type conversion operator" }
8   operator X&(); // { dg-warning "3:converting .X. to a reference to the same type will never use a type conversion operator" }
9   operator X() const; // { dg-warning "3:converting .X. to the same type will never use a type conversion operator" }
10   operator const X(); // { dg-warning "3:converting .X. to the same type will never use a type conversion operator" }
11 
12   operator B(); // { dg-warning "3:converting .X. to a base class .B. will never use a type conversion operator" }
13   operator B&(); // { dg-warning "3:converting .X. to a reference to a base class .B. will never use a type conversion operator" }
14   operator B() const; // { dg-warning "3:converting .X. to a base class .B. will never use a type conversion operator" }
15   operator const B(); // { dg-warning "3:converting .X. to a base class .const B. will never use a type conversion operator" }
16 
17   operator void(); // { dg-warning "3:converting .X. to .void. will never use a type conversion operator" }
18   operator void() const; // { dg-warning "3:converting .X. to .void. will never use a type conversion operator" }
19 };
20