xref: /llvm-project/clang/test/CodeGenCXX/new-with-default-arg.cpp (revision 8fbe78f6fc7b41d1a4228c126fcb522131150518)
1*8fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -emit-llvm -o - %s
21eab66c7SFariborz Jahanian // pr5547
31eab66c7SFariborz Jahanian 
41eab66c7SFariborz Jahanian struct A {
51eab66c7SFariborz Jahanian   void* operator new(__typeof(sizeof(int)));
61eab66c7SFariborz Jahanian   A();
71eab66c7SFariborz Jahanian };
81eab66c7SFariborz Jahanian 
x()91eab66c7SFariborz Jahanian A* x() {
101eab66c7SFariborz Jahanian   return new A;
111eab66c7SFariborz Jahanian }
121eab66c7SFariborz Jahanian 
131eab66c7SFariborz Jahanian struct B {
141eab66c7SFariborz Jahanian   void* operator new(__typeof(sizeof(int)), int = 1, int = 4);
151eab66c7SFariborz Jahanian   B(float);
161eab66c7SFariborz Jahanian };
171eab66c7SFariborz Jahanian 
y()181eab66c7SFariborz Jahanian B* y() {
191eab66c7SFariborz Jahanian   new (3,4) B(1);
201eab66c7SFariborz Jahanian   return new(1) B(2);
211eab66c7SFariborz Jahanian }
221eab66c7SFariborz Jahanian 
231eab66c7SFariborz Jahanian struct C {
241eab66c7SFariborz Jahanian   void* operator new(__typeof(sizeof(int)), int, int = 4);
251eab66c7SFariborz Jahanian   C();
261eab66c7SFariborz Jahanian };
271eab66c7SFariborz Jahanian 
z()281eab66c7SFariborz Jahanian C* z() {
291eab66c7SFariborz Jahanian   new (3,4) C;
301eab66c7SFariborz Jahanian   return new(1) C;
311eab66c7SFariborz Jahanian }
321eab66c7SFariborz Jahanian 
331eab66c7SFariborz Jahanian 
34