diff options
Diffstat (limited to 'lib/BlocksRuntime/tests/reference.C')
| -rw-r--r-- | lib/BlocksRuntime/tests/reference.C | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/lib/BlocksRuntime/tests/reference.C b/lib/BlocksRuntime/tests/reference.C deleted file mode 100644 index f86f11e86..000000000 --- a/lib/BlocksRuntime/tests/reference.C +++ /dev/null @@ -1,95 +0,0 @@ -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. - -#import <Block.h> -#import <stdio.h> -#import <stdlib.h> - -// CONFIG C++ - -int recovered = 0; - - - -int constructors = 0; -int destructors = 0; - -#define CONST const - -class TestObject -{ -public: - TestObject(CONST TestObject& inObj); - TestObject(); - ~TestObject(); - - TestObject& operator=(CONST TestObject& inObj); - - void test(void); - - int version() CONST { return _version; } -private: - mutable int _version; -}; - -TestObject::TestObject(CONST TestObject& inObj) - -{ - ++constructors; - _version = inObj._version; - //printf("%p (%d) -- TestObject(const TestObject&) called", this, _version); -} - - -TestObject::TestObject() -{ - _version = ++constructors; - //printf("%p (%d) -- TestObject() called\n", this, _version); -} - - -TestObject::~TestObject() -{ - //printf("%p -- ~TestObject() called\n", this); - ++destructors; -} - -#if 1 -TestObject& TestObject::operator=(CONST TestObject& inObj) -{ - //printf("%p -- operator= called", this); - _version = inObj._version; - return *this; -} -#endif - -void TestObject::test(void) { - void (^b)(void) = ^{ recovered = _version; }; - void (^b2)(void) = Block_copy(b); - b2(); - Block_release(b2); -} - - - -void testRoutine() { - TestObject one; - - - one.test(); -} - - - -int main(int argc, char *argv[]) { - testRoutine(); - if (recovered == 1) { - printf("%s: success\n", argv[0]); - exit(0); - } - printf("%s: *** didn't recover byref block variable\n", argv[0]); - exit(1); -} |
