// RUN: clang-cc -emit-llvm -o - %s
// pr5547

struct A {
  void* operator new(__typeof(sizeof(int)));
  A();
};

A* x() {
  return new A;
}

struct B {
  void* operator new(__typeof(sizeof(int)), int = 1, int = 4);
  B(float);
};

B* y() {
  new (3,4) B(1);
  return new(1) B(2);
}

struct C {
  void* operator new(__typeof(sizeof(int)), int, int = 4);
  C();
};

C* z() {
  new (3,4) C;
  return new(1) C;
}


