1*d22e2686SRafael Espindola // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 2*d22e2686SRafael Espindola // RUN: FileCheck %s 3*d22e2686SRafael Espindola // RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 4*d22e2686SRafael Espindola // RUN: FileCheck %s 52fee79a9SFariborz Jahanian 62fee79a9SFariborz Jahanian extern "C" int printf(...); 72fee79a9SFariborz Jahanian 82fee79a9SFariborz Jahanian class X { // ... 92fee79a9SFariborz Jahanian public: X(int)102fee79a9SFariborz Jahanian X(int) : iX(2), fX(2.3) , name("HELLO\n") { } 112fee79a9SFariborz Jahanian X(const char * arg,int ix=0)122fee79a9SFariborz Jahanian X(const char* arg, int ix=0) { iX = ix; fX = 6.0; name = arg+ix; } X()132fee79a9SFariborz Jahanian X(): iX(100), fX(1.2) {} 142fee79a9SFariborz Jahanian int iX; 152fee79a9SFariborz Jahanian float fX; 162fee79a9SFariborz Jahanian const char *name; pr(void)172fee79a9SFariborz Jahanian void pr(void) { 182fee79a9SFariborz Jahanian printf("iX = %d fX = %f name = %s\n", iX, fX, name); 192fee79a9SFariborz Jahanian } 202fee79a9SFariborz Jahanian }; 212fee79a9SFariborz Jahanian g(X arg)222fee79a9SFariborz Jahanianvoid g(X arg) { 232fee79a9SFariborz Jahanian arg.pr(); 242fee79a9SFariborz Jahanian } 252fee79a9SFariborz Jahanian f(X arg)262fee79a9SFariborz Jahanianvoid f(X arg) { 272fee79a9SFariborz Jahanian X a = 1; // a = X(1) 282fee79a9SFariborz Jahanian 292fee79a9SFariborz Jahanian a.pr(); 302fee79a9SFariborz Jahanian 312fee79a9SFariborz Jahanian X b = "Jessie"; // b=X("Jessie",0) 322fee79a9SFariborz Jahanian 332fee79a9SFariborz Jahanian b.pr(); 342fee79a9SFariborz Jahanian 352fee79a9SFariborz Jahanian 362fee79a9SFariborz Jahanian a = 2; // a = X(2) 372fee79a9SFariborz Jahanian 382fee79a9SFariborz Jahanian a.pr(); 392fee79a9SFariborz Jahanian } 402fee79a9SFariborz Jahanian 412fee79a9SFariborz Jahanian main()4211289f42SMike Stumpint main() { 432fee79a9SFariborz Jahanian X x; 442fee79a9SFariborz Jahanian f(x); 452fee79a9SFariborz Jahanian g(3); // g(X(3)) 462fee79a9SFariborz Jahanian } 472fee79a9SFariborz Jahanian 48*d22e2686SRafael Espindola // CHECK: call void @_ZN1XC1Ei 49*d22e2686SRafael Espindola // CHECK: call void @_ZN1XC1EPKci 50*d22e2686SRafael Espindola // CHECK: call void @_ZN1XC1Ev 51