1#ifdef __cplusplus 2# error "A C++ compiler has been selected for C." 3#endif 4 5#if defined(__18CXX) 6# define ID_VOID_MAIN 7#endif 8#if defined(__CLASSIC_C__) 9/* cv-qualifiers did not exist in K&R C */ 10# define const 11# define volatile 12#endif 13 14#if !defined(__has_include) 15/* If the compiler does not have __has_include, pretend the answer is 16 always no. */ 17# define __has_include(x) 0 18#endif 19 20@CMAKE_C_COMPILER_ID_CONTENT@ 21 22/* Construct the string literal in pieces to prevent the source from 23 getting matched. Store it in a pointer rather than an array 24 because some compilers will just produce instructions to fill the 25 array rather than assigning a pointer to a static array. */ 26char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 27#ifdef SIMULATE_ID 28char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; 29#endif 30 31#ifdef __QNXNTO__ 32char const* qnxnto = "INFO" ":" "qnxnto[]"; 33#endif 34 35#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) 36char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; 37#endif 38 39@CMAKE_C_COMPILER_ID_PLATFORM_CONTENT@ 40@CMAKE_C_COMPILER_ID_ERROR_FOR_TEST@ 41 42#if !defined(__STDC__) && !defined(__clang__) 43# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) 44# define C_VERSION "90" 45# else 46# define C_VERSION 47# endif 48#elif __STDC_VERSION__ > 201710L 49# define C_VERSION "23" 50#elif __STDC_VERSION__ >= 201710L 51# define C_VERSION "17" 52#elif __STDC_VERSION__ >= 201000L 53# define C_VERSION "11" 54#elif __STDC_VERSION__ >= 199901L 55# define C_VERSION "99" 56#else 57# define C_VERSION "90" 58#endif 59const char* info_language_standard_default = 60 "INFO" ":" "standard_default[" C_VERSION "]"; 61 62const char* info_language_extensions_default = "INFO" ":" "extensions_default[" 63/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ 64#if (defined(__clang__) || defined(__GNUC__) || \ 65 defined(__TI_COMPILER_VERSION__)) && \ 66 !defined(__STRICT_ANSI__) && !defined(_MSC_VER) 67 "ON" 68#else 69 "OFF" 70#endif 71"]"; 72 73/*--------------------------------------------------------------------------*/ 74 75#ifdef ID_VOID_MAIN 76void main() {} 77#else 78# if defined(__CLASSIC_C__) 79int main(argc, argv) int argc; char *argv[]; 80# else 81int main(int argc, char* argv[]) 82# endif 83{ 84 int require = 0; 85 require += info_compiler[argc]; 86 require += info_platform[argc]; 87 require += info_arch[argc]; 88#ifdef COMPILER_VERSION_MAJOR 89 require += info_version[argc]; 90#endif 91#ifdef COMPILER_VERSION_INTERNAL 92 require += info_version_internal[argc]; 93#endif 94#ifdef SIMULATE_ID 95 require += info_simulate[argc]; 96#endif 97#ifdef SIMULATE_VERSION_MAJOR 98 require += info_simulate_version[argc]; 99#endif 100#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) 101 require += info_cray[argc]; 102#endif 103 require += info_language_standard_default[argc]; 104 require += info_language_extensions_default[argc]; 105 (void)argv; 106 return require; 107} 108#endif 109