// { dg-do assemble  }
// GROUPS passed old-abort
#include <iostream>

	void
	fubar(std::ostream* out, const char* s)
	{
  	  (*out) << s << std::endl;
  	  return;
	}

	int
	main()
	{
  	  // Declare a ref and a pointer to the same ostream.
  	  //
  	  std::ostream* out = &std::cerr;
  	  std::ostream& die = std::cerr;

  	  // Valid call to fubar.
  	  //
  	  fubar(out, "First line.");
  
  	  // Invalid call to fubar. (1st arg is an ostream&. fubar expects
  	  // ostream*.)This should be a syntax error, but g++ does not catch it.
  	  // Call to this function results in a bus error in fubar when the 1st
  	  // arg is dereferenced.
  	  //
  	  fubar(die, "Second line.");// { dg-error "" }  cannot convert .die.*
  
  	  return 1;
	}
