1 #ifndef BENCHMARK_INTERNAL_MACROS_H_ 2 #define BENCHMARK_INTERNAL_MACROS_H_ 3 4 #include "benchmark/macros.h" 5 6 #ifndef __has_feature 7 # define __has_feature(x) 0 8 #endif 9 10 #if __has_feature(cxx_attributes) 11 # define BENCHMARK_NORETURN [[noreturn]] 12 #elif defined(__GNUC__) 13 # define BENCHMARK_NORETURN __attribute__((noreturn)) 14 #else 15 # define BENCHMARK_NORETURN 16 #endif 17 18 #if defined(__CYGWIN__) 19 # define BENCHMARK_OS_CYGWIN 1 20 #elif defined(_WIN32) 21 # define BENCHMARK_OS_WINDOWS 1 22 #elif defined(__APPLE__) 23 // TODO(ericwf) This doesn't actually check that it is a Mac OSX system. Just 24 // that it is an apple system. 25 # define BENCHMARK_OS_MACOSX 1 26 #elif defined(__FreeBSD__) 27 # define BENCHMARK_OS_FREEBSD 1 28 #elif defined(__linux__) 29 # define BENCHMARK_OS_LINUX 1 30 #endif 31 32 #if defined(__clang__) 33 # define COMPILER_CLANG 34 #elif defined(_MSC_VER) 35 # define COMPILER_MSVC 36 #elif defined(__GNUC__) 37 # define COMPILER_GCC 38 #endif 39 40 #endif // BENCHMARK_INTERNAL_MACROS_H_ 41