// { dg-options "-Wunused -W" }
extern void foo ();
void
f1 ()
{
  try
    {
      foo ();
    }
  catch (int i)
    {
    }
  catch (double d)
    {
    }
}
void
f2 (int x)
{
  int a = 0;
  x++;
  ++a;
}
struct A
{
  bool foo () const { return true; }
};
int
f3 ()
{
  A a;
  bool b = a.foo ();
  return b;
}
struct B
{
  int i;
  B (int j);
};
void
f4 ()
{
  B b (6);
}
struct C
{
  int i;
  C (int j) : i (j) {}
};
void
f5 ()
{
  C c (6);
}
struct D
{
  int i;
  D (int j) : i (j) {}
  ~D ();
};
void
f6 ()
{
  D d (6);
}
int *f7 (int s)
{
  return new int[s];
}
template <typename T>
T *f8 (int s)
{
  return new T[s];
}
template int *f8<int> (int);
void
f9 (char *p)
{
  delete p;
}
template <typename T>
void
f10 (T *p)
{
  delete p;
}
template void f10<char> (char *);