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(); 126dda7a24ef0e8a5a89128bba338bbfb9d8e6e7b1Fariborz Jahanian ~TestObject(); 1304520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian TestObject& operator=(const TestObject& inObj); 1404520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian int version() const; 1504520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian 1604520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian}; 1704520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian 1804520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanianvoid testRoutine() { 1904520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian TestObject one; 2004520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian int (^V)() = ^{ return one.version(); }; 2104520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian} 2204520839ece1d6292b1cac3732a3d04b985b1fc9Fariborz Jahanian 2346a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN10TestObjectC1Ev 2446a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN1SC1EPKc 2546a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN10TestObjectC1ERKS_iRK1S 2646a5c5aed460675fd2b5741a40b9883fee7f71f8Fariborz Jahanian// CHECK: call void @_ZN1SD1Ev 276dda7a24ef0e8a5a89128bba338bbfb9d8e6e7b1Fariborz Jahanian// CHECK: call void @_ZN10TestObjectD1Ev 286dda7a24ef0e8a5a89128bba338bbfb9d8e6e7b1Fariborz Jahanian// CHECK: call void @_ZN10TestObjectD1Ev 29