1*4d495c6eSApple OSS Distributions #ifndef TESTS_INTRUSIVE_SHARED_PTR_ABI_HELPER_H 2*4d495c6eSApple OSS Distributions #define TESTS_INTRUSIVE_SHARED_PTR_ABI_HELPER_H 3*4d495c6eSApple OSS Distributions 4*4d495c6eSApple OSS Distributions #include <libkern/c++/intrusive_shared_ptr.h> 5*4d495c6eSApple OSS Distributions #include <darwintest.h> 6*4d495c6eSApple OSS Distributions #include "test_policy.h" 7*4d495c6eSApple OSS Distributions 8*4d495c6eSApple OSS Distributions struct T { int i; }; 9*4d495c6eSApple OSS Distributions 10*4d495c6eSApple OSS Distributions #if defined USE_SHARED_PTR 11*4d495c6eSApple OSS Distributions template <typename T> 12*4d495c6eSApple OSS Distributions using SharedPtr = libkern::intrusive_shared_ptr<T, test_policy>; 13*4d495c6eSApple OSS Distributions #else 14*4d495c6eSApple OSS Distributions template <typename T> 15*4d495c6eSApple OSS Distributions using SharedPtr = T *; 16*4d495c6eSApple OSS Distributions #endif 17*4d495c6eSApple OSS Distributions 18*4d495c6eSApple OSS Distributions extern SharedPtr<T> return_shared_as_raw(T*); 19*4d495c6eSApple OSS Distributions extern SharedPtr<T> return_raw_as_shared(T*); 20*4d495c6eSApple OSS Distributions 21*4d495c6eSApple OSS Distributions #endif // !TESTS_INTRUSIVE_SHARED_PTR_ABI_HELPER_H 22