1*67e74705SXin Li // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 2*67e74705SXin Li // RUN: FileCheck %s 3*67e74705SXin Li // RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 4*67e74705SXin Li // RUN: FileCheck %s 5*67e74705SXin Li 6*67e74705SXin Li extern "C" int printf(...); 7*67e74705SXin Li 8*67e74705SXin Li class X { // ... 9*67e74705SXin Li public: X(int)10*67e74705SXin Li X(int) : iX(2), fX(2.3) , name("HELLO\n") { } 11*67e74705SXin Li X(const char * arg,int ix=0)12*67e74705SXin Li X(const char* arg, int ix=0) { iX = ix; fX = 6.0; name = arg+ix; } X()13*67e74705SXin Li X(): iX(100), fX(1.2) {} 14*67e74705SXin Li int iX; 15*67e74705SXin Li float fX; 16*67e74705SXin Li const char *name; pr(void)17*67e74705SXin Li void pr(void) { 18*67e74705SXin Li printf("iX = %d fX = %f name = %s\n", iX, fX, name); 19*67e74705SXin Li } 20*67e74705SXin Li }; 21*67e74705SXin Li g(X arg)22*67e74705SXin Livoid g(X arg) { 23*67e74705SXin Li arg.pr(); 24*67e74705SXin Li } 25*67e74705SXin Li f(X arg)26*67e74705SXin Livoid f(X arg) { 27*67e74705SXin Li X a = 1; // a = X(1) 28*67e74705SXin Li 29*67e74705SXin Li a.pr(); 30*67e74705SXin Li 31*67e74705SXin Li X b = "Jessie"; // b=X("Jessie",0) 32*67e74705SXin Li 33*67e74705SXin Li b.pr(); 34*67e74705SXin Li 35*67e74705SXin Li 36*67e74705SXin Li a = 2; // a = X(2) 37*67e74705SXin Li 38*67e74705SXin Li a.pr(); 39*67e74705SXin Li } 40*67e74705SXin Li 41*67e74705SXin Li main()42*67e74705SXin Liint main() { 43*67e74705SXin Li X x; 44*67e74705SXin Li f(x); 45*67e74705SXin Li g(3); // g(X(3)) 46*67e74705SXin Li } 47*67e74705SXin Li 48*67e74705SXin Li // CHECK: call void @_ZN1XC1Ei 49*67e74705SXin Li // CHECK: call void @_ZN1XC1EPKci 50*67e74705SXin Li // CHECK: call void @_ZN1XC1Ev 51