builtin2.C   [plain text]


/* { dg-do compile } */

/* PR c++/21087 */

/* We used to overload the template function with the built-in
   declaration, instead of replacing it as we should, and then barf at
   the using decl because of a test that none of the overload set
   members were anticipated built-ins.  */

extern "C" signed int toupper(signed int __c) throw();
namespace std
{
  template< typename a > a toupper(a,int){}
  using ::toupper;
}

int f () {
  std::toupper((signed int)'a');
}