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