// { dg-do assemble  }
// g++ 1.37.1 bug 900519_06

// g++ allows the type given in an invocation of operator new to be a
// reference type.

// Since pointers to reference types are illegal, the required return type
// from such an invocation (of operator new) is illegal, and thus (it seems)
// the entire call to new should be treated as being illegal.

typedef int& int_ref;

void test (int n)
{
  new int&;		// { dg-error "" } missed
  new int_ref;		// { dg-error "" } missed
  new int&[n];		// { dg-error "" } missed
  new int_ref[n];	// { dg-error "" } missed
  new int&[3];		// { dg-error "" } missed
  new int_ref[3];	// { dg-error "" } missed
}

int main () { return 0; }
