// { dg-do assemble } // // Copyright (C) 2000 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 18 Jan 2001 // Bug 1617. We didn't resolve partial ordering properly. The std is rather // vague about it anyway, DR 214 talks about this. extern "C" int puts (char const *); template int Foo (T); // { dg-message "note" } template int Foo (T &); // { dg-message "note" } candidate template int Qux (T); // { dg-message "note" } template int Qux (T const &); // { dg-message "note" } candidate template int Bar (T const *const &); // { dg-message "note" } template int Bar (T *const &); // { dg-message "note" } candidate template int Bar (T *); // { dg-message "note" } candidate template int Baz (T *const &); // { dg-message "note" } template int Baz (T *); // { dg-message "note" } candidate int Baz (int const *ptr, int *ptr2) { Baz (ptr2); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 26 } Bar (ptr2); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 28 } Foo (ptr2); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 30 } Qux (ptr2); // { dg-error "ambiguous" } // { dg-message "candidate" "candidate note" { target *-*-* } 32 } return 0; }