copy-in-cplus-object.cpp revision 46a5c5aed460675fd2b5741a40b9883fee7f71f8
104520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian// RUN: %clang_cc1 %s -fblocks -triple x86_64-apple-darwin -emit-llvm -o - | FileCheck %s
204520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian
346a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanianstruct S {
446a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian  S(const char *);
546a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian  ~S();
646a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian};
746a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian
804520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanianstruct TestObject
904520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian{
1046a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian	TestObject(const TestObject& inObj, int def = 100,  const S &Silly = "silly");
1104520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian	TestObject();
1204520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian	TestObject& operator=(const TestObject& inObj);
1304520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian	int version() const;
1404520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian
1504520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian};
1604520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian
1704520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanianvoid testRoutine() {
1804520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian    TestObject one;
1904520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian    int (^V)() = ^{ return one.version(); };
2004520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian}
2104520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian
2246a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN10TestObjectC1Ev
2346a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN1SC1EPKc
2446a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN10TestObjectC1ERKS_iRK1S
2546a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN1SD1Ev
2604520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian
27