// Copyright (C) 2005 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 2 Apr 2005 <nathan@codesourcery.com>

// PR 20723
// Origin: Andrew Pinski <pinskia@gcc.gnu.org>
//         Nathan Sidwell <nathan@gcc.gnu.org>

struct Foo
{
  template <typename T>
  Foo (const T &); // { dg-error "T = Bar" "" }
};

struct Bar
{
  template <typename T>
  operator T () const;   // { dg-error "T = Foo" "" }
};

Foo Quux (Bar const &b)
{
  return b; // { dg-error "ambiguous" "" }
}


