1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
21 // conversion of C* to B* is better than conversion of C* to A*.
29 // conversion of B* to A* is better than conversion of C* to A*
32 struct ConvertsToBoth {
40 void test_f1(ConvertsTo<B*> toB, ConvertsTo<C*> toC, ConvertsToBoth toBoth) {
46 // A conversion to an a non-id object pointer type is better than a
47 // conversion to 'id'.
55 // A conversion to an a non-Class object pointer type is better than a
56 // conversion to 'Class'.
64 // When both conversions convert to 'id' or 'Class', pick the most
65 // specific type to convert from.
68 void test_f4(ConvertsTo<B*> toB, ConvertsTo<C*> toC, ConvertsToBoth toBoth) {
76 void test_f5(ConvertsTo<B*> toB, ConvertsTo<C*> toC, ConvertsToBoth toBoth) {
83 // A conversion to an a non-id object pointer type is better than a
84 // conversion to qualified 'id'.