/ keychain / SecureObjectSync / SOSARCDefines.h
SOSARCDefines.h
 1  /*
 2   * Copyright (c) 2012,2014 Apple Inc. All Rights Reserved.
 3   *
 4   * @APPLE_LICENSE_HEADER_START@
 5   *
 6   * This file contains Original Code and/or Modifications of Original Code
 7   * as defined in and that are subject to the Apple Public Source License
 8   * Version 2.0 (the 'License'). You may not use this file except in
 9   * compliance with the License. Please obtain a copy of the License at
10   * http://www.opensource.apple.com/apsl/ and read it before using this
11   * file.
12   *
13   * The Original Code and all software distributed under the License are
14   * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15   * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16   * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17   * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18   * Please see the License for the specific language governing rights and
19   * limitations under the License.
20   *
21   * @APPLE_LICENSE_HEADER_END@
22   */
23  
24  
25  #ifndef sec_SOSARCDefines_h
26  #define sec_SOSARCDefines_h
27  
28  #ifndef __has_feature
29  #define __has_feature(x) 0
30  #endif
31  #ifndef __has_extension
32  #define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
33  #endif
34  
35  #if __has_feature(objc_arc) && __clang_major__ >= 3
36  #define ARC_ENABLED 1
37  #endif // __has_feature(objc_arc)
38  
39  #if !ARC_ENABLED || !defined(__clang__) || __clang_major__ < 3
40  
41  #ifndef __bridge
42  #define __bridge
43  #endif
44  #ifndef __bridge_retained
45  #define __bridge_retained
46  #endif
47  #ifndef __bridge_transfer
48  #define __bridge_transfer
49  #endif
50  #ifndef __autoreleasing
51  #define __autoreleasing
52  #endif
53  #ifndef __strong
54  #define __strong
55  #endif
56  #ifndef __weak
57  #define __weak
58  #endif
59  #ifndef __unsafe_unretained
60  #define __unsafe_unretained
61  #endif
62  
63  #endif // __clang_major__ < 3
64  
65  #endif