1*f6b5c16eSRafael Espindola // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \
2*f6b5c16eSRafael Espindola // RUN: FileCheck %s
3*f6b5c16eSRafael Espindola // RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \
4*f6b5c16eSRafael Espindola // RUN: FileCheck %s
5aa890bf2SFariborz Jahanian
6aa890bf2SFariborz Jahanian extern "C" int printf(...);
7aa890bf2SFariborz Jahanian
8aa890bf2SFariborz Jahanian
9aa890bf2SFariborz Jahanian struct C {
CC10aa890bf2SFariborz Jahanian C() : iC(6) {}
11aa890bf2SFariborz Jahanian int iC;
12aa890bf2SFariborz Jahanian };
13aa890bf2SFariborz Jahanian
foo()14aa890bf2SFariborz Jahanian int foo() {
15aa890bf2SFariborz Jahanian return 6;
16aa890bf2SFariborz Jahanian };
17aa890bf2SFariborz Jahanian
18aa890bf2SFariborz Jahanian class X { // ...
19aa890bf2SFariborz Jahanian public:
X(int)20aa890bf2SFariborz Jahanian X(int) {}
X(const X &,int i=1,int j=2,int k=foo ())21aa890bf2SFariborz Jahanian X(const X&, int i = 1, int j = 2, int k = foo()) {
22aa890bf2SFariborz Jahanian printf("X(const X&, %d, %d, %d)\n", i, j, k);
23aa890bf2SFariborz Jahanian }
24aa890bf2SFariborz Jahanian };
25aa890bf2SFariborz Jahanian
main()2611289f42SMike Stump int main() {
27aa890bf2SFariborz Jahanian X a(1);
28aa890bf2SFariborz Jahanian X b(a, 2);
29aa890bf2SFariborz Jahanian X c = b;
30aa890bf2SFariborz Jahanian X d(a, 5, 6);
31aa890bf2SFariborz Jahanian }
3211289f42SMike Stump
33*f6b5c16eSRafael Espindola // CHECK: call void @_ZN1XC1ERKS_iii
34*f6b5c16eSRafael Espindola // CHECK: call void @_ZN1XC1ERKS_iii
35*f6b5c16eSRafael Espindola // CHECK: call void @_ZN1XC1ERKS_iii
36