(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.old-deja/
g++.other/
cast2.C
// { dg-do assemble  }
// Origin: Mark Mitchell <mark@codesourcery.com>

struct A {
};

int main()
{
  A a;
  typedef void (A::*F)();
  F p;

  const_cast<const A>(a); // { dg-error "3:invalid use of .const_cast." } const_cast requires pointer/ref types
  const_cast<F>(p); // { dg-error "3:invalid use of .const_cast." } const_cast requires pointer/ref types
  const_cast<int (*)()>(&main); // { dg-error "3:invalid use of .const_cast." } function type in const_cast
  // { dg-error "26:ISO C\\+\\+ forbids taking address" "" { target *-*-* } .-1 }
  const_cast<int (&)()>(main); // { dg-error "3:invalid use of .const_cast." } function type in const_cast
}