// { dg-do compile }

// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 28 Dec 2001 <nathan@codesourcery.com>

// PR 5123. ICE

struct C {
  template<class T> void f(T);
  void g ();
  void g (int);
};

void Foo () {
  C c;

  (c.g) ();
  (c.f) (1);
  
  (c.f<int>) (2);

  c.g;			// { dg-error "statement cannot resolve" "" }
  c.f;		        // { dg-error "statement cannot resolve" "" }
  c.f<int>;		// { dg-error "statement cannot resolve" "" }
  
  c.g == 1;		// { dg-error "invalid" "" }
  c.f == 1;		// { dg-error "invalid" "" }
  c.f<int> == 1;	// { dg-error "invalid" "" }
}
