164176c2cSFariborz Jahanian // RUN: %clang_cc1 %s -fblocks -triple x86_64-apple-darwin -emit-llvm -o - | FileCheck %s 264176c2cSFariborz Jahanian 38e73928fSFariborz Jahanian struct S { 48e73928fSFariborz Jahanian S(const char *); 58e73928fSFariborz Jahanian ~S(); 68e73928fSFariborz Jahanian }; 78e73928fSFariborz Jahanian 864176c2cSFariborz Jahanian struct TestObject 964176c2cSFariborz Jahanian { 108e73928fSFariborz Jahanian TestObject(const TestObject& inObj, int def = 100, const S &Silly = "silly"); 1164176c2cSFariborz Jahanian TestObject(); 12*3b836180SFariborz Jahanian ~TestObject(); 1364176c2cSFariborz Jahanian TestObject& operator=(const TestObject& inObj); 1464176c2cSFariborz Jahanian int version() const; 1564176c2cSFariborz Jahanian 1664176c2cSFariborz Jahanian }; 1764176c2cSFariborz Jahanian testRoutine()1864176c2cSFariborz Jahanianvoid testRoutine() { 1964176c2cSFariborz Jahanian TestObject one; 2064176c2cSFariborz Jahanian int (^V)() = ^{ return one.version(); }; 2164176c2cSFariborz Jahanian } 2264176c2cSFariborz Jahanian 238e73928fSFariborz Jahanian // CHECK: call void @_ZN10TestObjectC1Ev 248e73928fSFariborz Jahanian // CHECK: call void @_ZN1SC1EPKc 258e73928fSFariborz Jahanian // CHECK: call void @_ZN10TestObjectC1ERKS_iRK1S 268e73928fSFariborz Jahanian // CHECK: call void @_ZN1SD1Ev 27*3b836180SFariborz Jahanian // CHECK: call void @_ZN10TestObjectD1Ev 28*3b836180SFariborz Jahanian // CHECK: call void @_ZN10TestObjectD1Ev 29