Chromium Code Reviews| 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 29 matching lines...) Expand all Loading... | |
| 40 /* COMPILER(CLANG) - Clang */ | 40 /* COMPILER(CLANG) - Clang */ |
| 41 #if defined(__clang__) | 41 #if defined(__clang__) |
| 42 #define WTF_COMPILER_CLANG 1 | 42 #define WTF_COMPILER_CLANG 1 |
| 43 | 43 |
| 44 #define CLANG_PRAGMA(PRAGMA) _Pragma(PRAGMA) | 44 #define CLANG_PRAGMA(PRAGMA) _Pragma(PRAGMA) |
| 45 | 45 |
| 46 /* Specific compiler features */ | 46 /* Specific compiler features */ |
| 47 | 47 |
| 48 #define WTF_COMPILER_SUPPORTS_CXX_EXPLICIT_CONVERSIONS __has_feature(cxx_explici t_conversions) | 48 #define WTF_COMPILER_SUPPORTS_CXX_EXPLICIT_CONVERSIONS __has_feature(cxx_explici t_conversions) |
| 49 #define WTF_COMPILER_SUPPORTS_BLOCKS __has_feature(blocks) | 49 #define WTF_COMPILER_SUPPORTS_BLOCKS __has_feature(blocks) |
| 50 #define WTF_COMPILER_SUPPORTS_C_STATIC_ASSERT __has_extension(c_static_assert) | |
| 51 #define WTF_COMPILER_SUPPORTS_CXX_STATIC_ASSERT __has_extension(cxx_static_asser t) | |
| 52 #define WTF_COMPILER_SUPPORTS_HAS_TRIVIAL_DESTRUCTOR __has_extension(has_trivial _destructor) | 50 #define WTF_COMPILER_SUPPORTS_HAS_TRIVIAL_DESTRUCTOR __has_extension(has_trivial _destructor) |
| 53 | 51 |
| 54 #endif | 52 #endif |
| 55 | 53 |
| 56 #ifndef CLANG_PRAGMA | 54 #ifndef CLANG_PRAGMA |
| 57 #define CLANG_PRAGMA(PRAGMA) | 55 #define CLANG_PRAGMA(PRAGMA) |
| 58 #endif | 56 #endif |
| 59 | 57 |
| 60 /* COMPILER(MSVC) - Microsoft Visual C++ */ | 58 /* COMPILER(MSVC) - Microsoft Visual C++ */ |
| 61 #if defined(_MSC_VER) | 59 #if defined(_MSC_VER) |
| 62 #define WTF_COMPILER_MSVC 1 | 60 #define WTF_COMPILER_MSVC 1 |
| 63 #endif | 61 #endif |
| 64 | 62 |
| 65 /* COMPILER(GCC) - GNU Compiler Collection */ | 63 /* COMPILER(GCC) - GNU Compiler Collection */ |
| 66 #if defined(__GNUC__) | 64 #if defined(__GNUC__) |
| 67 #define WTF_COMPILER_GCC 1 | 65 #define WTF_COMPILER_GCC 1 |
| 68 #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL __) | 66 #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL __) |
| 69 #define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000 + minor * 100 + patch)) | 67 #define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000 + minor * 100 + patch)) |
| 70 #else | 68 #else |
| 71 /* Define this for !GCC compilers, just so we can write things like GCC_VERSION_ AT_LEAST(4, 1, 0). */ | 69 /* Define this for !GCC compilers, just so we can write things like GCC_VERSION_ AT_LEAST(4, 1, 0). */ |
| 72 #define GCC_VERSION_AT_LEAST(major, minor, patch) 0 | 70 #define GCC_VERSION_AT_LEAST(major, minor, patch) 0 |
| 73 #endif | 71 #endif |
| 74 | 72 |
| 75 /* Specific compiler features */ | 73 /* Specific compiler features */ |
| 76 #if COMPILER(GCC) && !COMPILER(CLANG) | 74 #if COMPILER(GCC) && !COMPILER(CLANG) |
|
Nico
2014/12/15 22:41:21
Maybe the !CLANG isn't needed anymore? (not for th
Mostyn Bramley-Moore
2014/12/15 23:06:17
Acknowledged. I will test it and submit another C
| |
| 77 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L | |
| 78 /* C11 support */ | |
| 79 #define WTF_COMPILER_SUPPORTS_C_STATIC_ASSERT 1 | |
| 80 #endif | |
| 81 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(__cplusplus) && __cplusplus >= 201103L) | |
| 82 /* C++11 support */ | |
| 83 #if GCC_VERSION_AT_LEAST(4, 3, 0) | |
| 84 #define WTF_COMPILER_SUPPORTS_CXX_STATIC_ASSERT 1 | |
| 85 #endif | |
| 86 #if GCC_VERSION_AT_LEAST(4, 5, 0) | 75 #if GCC_VERSION_AT_LEAST(4, 5, 0) |
|
Nico
2014/12/15 22:41:21
We require gcc 4.8, you can remove this check too
Mostyn Bramley-Moore
2014/12/15 23:06:17
Done.
| |
| 87 #define WTF_COMPILER_SUPPORTS_CXX_EXPLICIT_CONVERSIONS 1 | 76 #define WTF_COMPILER_SUPPORTS_CXX_EXPLICIT_CONVERSIONS 1 |
| 88 #endif | 77 #endif |
| 89 #endif /* defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(__cplusplus) && __cplu splus >= 201103L) */ | |
| 90 #endif /* COMPILER(GCC) */ | 78 #endif /* COMPILER(GCC) */ |
| 91 | 79 |
| 92 /* ==== Compiler features ==== */ | 80 /* ==== Compiler features ==== */ |
| 93 | 81 |
| 94 | 82 |
| 95 /* ALWAYS_INLINE */ | 83 /* ALWAYS_INLINE */ |
| 96 | 84 |
| 97 #ifndef ALWAYS_INLINE | 85 #ifndef ALWAYS_INLINE |
| 98 #if COMPILER(GCC) && defined(NDEBUG) && !COMPILER(MINGW) | 86 #if COMPILER(GCC) && defined(NDEBUG) && !COMPILER(MINGW) |
| 99 #define ALWAYS_INLINE inline __attribute__((__always_inline__)) | 87 #define ALWAYS_INLINE inline __attribute__((__always_inline__)) |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 194 #define WTF_COMPILER_SUPPORTS_PRETTY_FUNCTION 1 | 182 #define WTF_COMPILER_SUPPORTS_PRETTY_FUNCTION 1 |
| 195 #define WTF_PRETTY_FUNCTION __PRETTY_FUNCTION__ | 183 #define WTF_PRETTY_FUNCTION __PRETTY_FUNCTION__ |
| 196 #elif COMPILER(MSVC) | 184 #elif COMPILER(MSVC) |
| 197 #define WTF_COMPILER_SUPPORTS_PRETTY_FUNCTION 1 | 185 #define WTF_COMPILER_SUPPORTS_PRETTY_FUNCTION 1 |
| 198 #define WTF_PRETTY_FUNCTION __FUNCSIG__ | 186 #define WTF_PRETTY_FUNCTION __FUNCSIG__ |
| 199 #else | 187 #else |
| 200 #define WTF_PRETTY_FUNCTION __FUNCTION__ | 188 #define WTF_PRETTY_FUNCTION __FUNCTION__ |
| 201 #endif | 189 #endif |
| 202 | 190 |
| 203 #endif /* WTF_Compiler_h */ | 191 #endif /* WTF_Compiler_h */ |
| OLD | NEW |