xref: /llvm-project/clang/test/CodeGenCXX/copy-in-cplus-object.cpp (revision 3b836180546c2af22fe55c332e8245d8e1a8b8fb)
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 Jahanian void 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