// { dg-do assemble  }

// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 12 Jan 2001 <nathan@codesourcery.com>

// Bug 1630. Template deduction at a call allowed conversions more lenient than
// qualification conversions. That would lead to misleading diagnostics during
// overload resolution.


template <typename T> void Foo (T const **);
template <typename T> void Bar (T const * const *);
void Foo (int);       // { dg-error "" } candidate
void Foo (float);     // { dg-error "" } candidate

void baz (int **p1)
{
  Foo (p1);   // { dg-error "" } no such function
  Bar (p1);   // OK
}
