| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 #define WTF_COMPILER_SUPPORTS_CXX_NULLPTR 1 | 87 #define WTF_COMPILER_SUPPORTS_CXX_NULLPTR 1 |
| 88 #endif | 88 #endif |
| 89 | 89 |
| 90 #if !COMPILER(CLANG) | 90 #if !COMPILER(CLANG) |
| 91 #define WTF_COMPILER_SUPPORTS_CXX_OVERRIDE_CONTROL 1 | 91 #define WTF_COMPILER_SUPPORTS_CXX_OVERRIDE_CONTROL 1 |
| 92 #define WTF_COMPILER_QUIRK_FINAL_IS_CALLED_SEALED 1 | 92 #define WTF_COMPILER_QUIRK_FINAL_IS_CALLED_SEALED 1 |
| 93 #endif | 93 #endif |
| 94 | 94 |
| 95 #endif | 95 #endif |
| 96 | 96 |
| 97 /* COMPILER(RVCT) - ARM RealView Compilation Tools */ | |
| 98 #if defined(__CC_ARM) || defined(__ARMCC__) | |
| 99 #define WTF_COMPILER_RVCT 1 | |
| 100 #define RVCT_VERSION_AT_LEAST(major, minor, patch, build) (__ARMCC_VERSION >= (m
ajor * 100000 + minor * 10000 + patch * 1000 + build)) | |
| 101 #else | |
| 102 /* Define this for !RVCT compilers, just so we can write things like RVCT_VERSIO
N_AT_LEAST(3, 0, 0, 0). */ | |
| 103 #define RVCT_VERSION_AT_LEAST(major, minor, patch, build) 0 | |
| 104 #endif | |
| 105 | |
| 106 /* COMPILER(GCCE) - GNU Compiler Collection for Embedded */ | 97 /* COMPILER(GCCE) - GNU Compiler Collection for Embedded */ |
| 107 #if defined(__GCCE__) | 98 #if defined(__GCCE__) |
| 108 #define WTF_COMPILER_GCCE 1 | 99 #define WTF_COMPILER_GCCE 1 |
| 109 #define GCCE_VERSION (__GCCE__ * 10000 + __GCCE_MINOR__ * 100 + __GCCE_PATCHLEVE
L__) | 100 #define GCCE_VERSION (__GCCE__ * 10000 + __GCCE_MINOR__ * 100 + __GCCE_PATCHLEVE
L__) |
| 110 #define GCCE_VERSION_AT_LEAST(major, minor, patch) (GCCE_VERSION >= (major * 100
00 + minor * 100 + patch)) | 101 #define GCCE_VERSION_AT_LEAST(major, minor, patch) (GCCE_VERSION >= (major * 100
00 + minor * 100 + patch)) |
| 111 #endif | 102 #endif |
| 112 | 103 |
| 113 /* COMPILER(GCC) - GNU Compiler Collection */ | 104 /* COMPILER(GCC) - GNU Compiler Collection */ |
| 114 /* --gnu option of the RVCT compiler also defines __GNUC__ */ | 105 #if defined(__GNUC__) |
| 115 #if defined(__GNUC__) && !COMPILER(RVCT) | |
| 116 #define WTF_COMPILER_GCC 1 | 106 #define WTF_COMPILER_GCC 1 |
| 117 #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL
__) | 107 #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL
__) |
| 118 #define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000
+ minor * 100 + patch)) | 108 #define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000
+ minor * 100 + patch)) |
| 119 #else | 109 #else |
| 120 /* Define this for !GCC compilers, just so we can write things like GCC_VERSION_
AT_LEAST(4, 1, 0). */ | 110 /* Define this for !GCC compilers, just so we can write things like GCC_VERSION_
AT_LEAST(4, 1, 0). */ |
| 121 #define GCC_VERSION_AT_LEAST(major, minor, patch) 0 | 111 #define GCC_VERSION_AT_LEAST(major, minor, patch) 0 |
| 122 #endif | 112 #endif |
| 123 | 113 |
| 124 /* Specific compiler features */ | 114 /* Specific compiler features */ |
| 125 #if COMPILER(GCC) && !COMPILER(CLANG) | 115 #if COMPILER(GCC) && !COMPILER(CLANG) |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 #endif | 162 #endif |
| 173 | 163 |
| 174 /* ==== Compiler features ==== */ | 164 /* ==== Compiler features ==== */ |
| 175 | 165 |
| 176 | 166 |
| 177 /* ALWAYS_INLINE */ | 167 /* ALWAYS_INLINE */ |
| 178 | 168 |
| 179 #ifndef ALWAYS_INLINE | 169 #ifndef ALWAYS_INLINE |
| 180 #if COMPILER(GCC) && defined(NDEBUG) && !COMPILER(MINGW) | 170 #if COMPILER(GCC) && defined(NDEBUG) && !COMPILER(MINGW) |
| 181 #define ALWAYS_INLINE inline __attribute__((__always_inline__)) | 171 #define ALWAYS_INLINE inline __attribute__((__always_inline__)) |
| 182 #elif (COMPILER(MSVC) || COMPILER(RVCT)) && defined(NDEBUG) | 172 #elif COMPILER(MSVC) && defined(NDEBUG) |
| 183 #define ALWAYS_INLINE __forceinline | 173 #define ALWAYS_INLINE __forceinline |
| 184 #else | 174 #else |
| 185 #define ALWAYS_INLINE inline | 175 #define ALWAYS_INLINE inline |
| 186 #endif | 176 #endif |
| 187 #endif | 177 #endif |
| 188 | 178 |
| 189 | 179 |
| 190 /* NEVER_INLINE */ | 180 /* NEVER_INLINE */ |
| 191 | 181 |
| 192 #ifndef NEVER_INLINE | 182 #ifndef NEVER_INLINE |
| 193 #if COMPILER(GCC) | 183 #if COMPILER(GCC) |
| 194 #define NEVER_INLINE __attribute__((__noinline__)) | 184 #define NEVER_INLINE __attribute__((__noinline__)) |
| 195 #elif COMPILER(RVCT) | |
| 196 #define NEVER_INLINE __declspec(noinline) | |
| 197 #else | 185 #else |
| 198 #define NEVER_INLINE | 186 #define NEVER_INLINE |
| 199 #endif | 187 #endif |
| 200 #endif | 188 #endif |
| 201 | 189 |
| 202 | 190 |
| 203 /* UNLIKELY */ | 191 /* UNLIKELY */ |
| 204 | 192 |
| 205 #ifndef UNLIKELY | 193 #ifndef UNLIKELY |
| 206 #if COMPILER(GCC) || (COMPILER(RVCT) && defined(__GNUC__)) | 194 #if COMPILER(GCC) |
| 207 #define UNLIKELY(x) __builtin_expect((x), 0) | 195 #define UNLIKELY(x) __builtin_expect((x), 0) |
| 208 #else | 196 #else |
| 209 #define UNLIKELY(x) (x) | 197 #define UNLIKELY(x) (x) |
| 210 #endif | 198 #endif |
| 211 #endif | 199 #endif |
| 212 | 200 |
| 213 | 201 |
| 214 /* LIKELY */ | 202 /* LIKELY */ |
| 215 | 203 |
| 216 #ifndef LIKELY | 204 #ifndef LIKELY |
| 217 #if COMPILER(GCC) || (COMPILER(RVCT) && defined(__GNUC__)) | 205 #if COMPILER(GCC) |
| 218 #define LIKELY(x) __builtin_expect((x), 1) | 206 #define LIKELY(x) __builtin_expect((x), 1) |
| 219 #else | 207 #else |
| 220 #define LIKELY(x) (x) | 208 #define LIKELY(x) (x) |
| 221 #endif | 209 #endif |
| 222 #endif | 210 #endif |
| 223 | 211 |
| 224 | 212 |
| 225 /* NO_RETURN */ | 213 /* NO_RETURN */ |
| 226 | 214 |
| 227 | 215 |
| 228 #ifndef NO_RETURN | 216 #ifndef NO_RETURN |
| 229 #if COMPILER(GCC) | 217 #if COMPILER(GCC) |
| 230 #define NO_RETURN __attribute((__noreturn__)) | 218 #define NO_RETURN __attribute((__noreturn__)) |
| 231 #elif COMPILER(MSVC) || COMPILER(RVCT) | 219 #elif COMPILER(MSVC) |
| 232 #define NO_RETURN __declspec(noreturn) | 220 #define NO_RETURN __declspec(noreturn) |
| 233 #else | 221 #else |
| 234 #define NO_RETURN | 222 #define NO_RETURN |
| 235 #endif | 223 #endif |
| 236 #endif | 224 #endif |
| 237 | 225 |
| 238 | 226 |
| 239 /* NO_RETURN_WITH_VALUE */ | 227 /* NO_RETURN_WITH_VALUE */ |
| 240 | 228 |
| 241 #ifndef NO_RETURN_WITH_VALUE | 229 #ifndef NO_RETURN_WITH_VALUE |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 #define OBJC_CLASS class | 278 #define OBJC_CLASS class |
| 291 #endif | 279 #endif |
| 292 #endif | 280 #endif |
| 293 | 281 |
| 294 /* ABI */ | 282 /* ABI */ |
| 295 #if defined(__ARM_EABI__) || defined(__EABI__) | 283 #if defined(__ARM_EABI__) || defined(__EABI__) |
| 296 #define WTF_COMPILER_SUPPORTS_EABI 1 | 284 #define WTF_COMPILER_SUPPORTS_EABI 1 |
| 297 #endif | 285 #endif |
| 298 | 286 |
| 299 #endif /* WTF_Compiler_h */ | 287 #endif /* WTF_Compiler_h */ |
| OLD | NEW |