// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \ | |
// RUN: FileCheck %s | |
// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \ | |
// RUN: FileCheck %s | |
extern "C" int printf(...); | |
class X { // ... | |
public: | |
X(int) : iX(2), fX(2.3) , name("HELLO\n") { } | |
X(const char* arg, int ix=0) { iX = ix; fX = 6.0; name = arg+ix; } | |
X(): iX(100), fX(1.2) {} | |
int iX; | |
float fX; | |
const char *name; | |
void pr(void) { | |
printf("iX = %d fX = %f name = %s\n", iX, fX, name); | |
} | |
}; | |
void g(X arg) { | |
arg.pr(); | |
} | |
void f(X arg) { | |
X a = 1; // a = X(1) | |
a.pr(); | |
X b = "Jessie"; // b=X("Jessie",0) | |
b.pr(); | |
a = 2; // a = X(2) | |
a.pr(); | |
} | |
int main() { | |
X x; | |
f(x); | |
g(3); // g(X(3)) | |
} | |
// CHECK: call void @_ZN1XC1Ei | |
// CHECK: call void @_ZN1XC1EPKci | |
// CHECK: call void @_ZN1XC1Ev |