1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm -o - %s 2*67e74705SXin Li // pr5547 3*67e74705SXin Li 4*67e74705SXin Li struct A { 5*67e74705SXin Li void* operator new(__typeof(sizeof(int))); 6*67e74705SXin Li A(); 7*67e74705SXin Li }; 8*67e74705SXin Li x()9*67e74705SXin LiA* x() { 10*67e74705SXin Li return new A; 11*67e74705SXin Li } 12*67e74705SXin Li 13*67e74705SXin Li struct B { 14*67e74705SXin Li void* operator new(__typeof(sizeof(int)), int = 1, int = 4); 15*67e74705SXin Li B(float); 16*67e74705SXin Li }; 17*67e74705SXin Li y()18*67e74705SXin LiB* y() { 19*67e74705SXin Li new (3,4) B(1); 20*67e74705SXin Li return new(1) B(2); 21*67e74705SXin Li } 22*67e74705SXin Li 23*67e74705SXin Li struct C { 24*67e74705SXin Li void* operator new(__typeof(sizeof(int)), int, int = 4); 25*67e74705SXin Li C(); 26*67e74705SXin Li }; 27*67e74705SXin Li z()28*67e74705SXin LiC* z() { 29*67e74705SXin Li new (3,4) C; 30*67e74705SXin Li return new(1) C; 31*67e74705SXin Li } 32*67e74705SXin Li 33*67e74705SXin Li 34