// { dg-do assemble  }
// g++ 1.36.1 bug 900215_01

// g++ allows the definition of a type conversion operator `operator void'
// for class types, but subsequently fails to generate calls (where needed)
// for such type conversion operators.

// Cfront 2.0 does generate such calls.

// The following program exits with status 0 when compiled with Cfront 2.0
// but exits with status 1 when compiled with g++.

// Cfront 2.0 passes this test.

// 4/27/94 (jason): The pre-San Diego working paper prohibits operator
// void, so we can go back to just ignoring void values.

// keywords: user-defined type conversion operators, void type, explicit casts

// 8/3/2000 (nathan): The std allows you to define such an op, but
// it will never be called. [class.conv.fct]. Make it an unconditional warning.

// { dg-options "-Wconversion" }

struct struct0 {

  operator void ();		// { dg-warning "" } operator void
};

int exit_status = 1;

struct0::operator void ()
{
  exit_status = 0;
}

struct struct0 s0_object;

int test ()
{
  (void) s0_object;
  return exit_status;
}

int main () { return test (); }
