1// { dg-do assemble  }
2//
3// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
4// Contributed by Nathan Sidwell 5 Sept 2000 <nathan@codesourcery.com>
5
6// bug 147. We ICE'd on an unprocessed LOOKUP_EXPR during tsubsting
7
8namespace EManip {
9    template <class T> void do_assign(T* d);  // { dg-error "" } candidate
10}
11template <class T> void do_assign(T* d);    // { dg-error "" } candidate
12
13template <class T>
14struct MatrixC
15{
16  void foo () {
17    EManip::do_assign<T> (0);
18    &EManip::do_assign<T>;	// { dg-bogus "" } unresolved
19    &do_assign<T>;		// { dg-bogus "" } unresolved
20    EManip::do_assign<T>;       // { dg-bogus "" } unresolved
21    do_assign<T>;               // { dg-bogus "" } unresolved
22  }
23};
24void foo(MatrixC <double> *ptr)
25{
26  EManip::do_assign<double>;    // { dg-bogus "" } unresolved
27  &EManip::do_assign<double>;	// { dg-bogus "" } unresolved
28  ptr->foo ();
29  void (*p1) (int *) = &do_assign<double>;       // { dg-error "" } cannot convert
30  void (*p2) (int *) = &EManip::do_assign<double>; // { dg-error "" } cannot convert
31  void (*p3) (int *) = &do_assign;
32  void (*p4) (int *) = &EManip::do_assign;
33}
34