5 # error "A C compiler has been selected for C++."
13 # define COMPILER_ID "Comeau"
15 # define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
16 # define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
18 #elif defined(__INTEL_COMPILER) || defined(__ICC)
19 # define COMPILER_ID "Intel"
20 # if defined(_MSC_VER)
21 # define SIMULATE_ID "MSVC"
23 # if defined(__GNUC__)
24 # define SIMULATE_ID "GNU"
28 # if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
29 # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
30 # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
31 # if defined(__INTEL_COMPILER_UPDATE)
32 # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
34 # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
37 # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
38 # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
41 # define COMPILER_VERSION_PATCH DEC(0)
43 # if defined(__INTEL_COMPILER_BUILD_DATE)
45 # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
47 # if defined(_MSC_VER)
49 # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
50 # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
52 # if defined(__GNUC__)
53 # define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
54 # elif defined(__GNUG__)
55 # define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
57 # if defined(__GNUC_MINOR__)
58 # define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
60 # if defined(__GNUC_PATCHLEVEL__)
61 # define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
64 #elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
65 # define COMPILER_ID "IntelLLVM"
67 # define SIMULATE_ID "MSVC"
70 # define SIMULATE_ID "GNU"
76 #if __INTEL_LLVM_COMPILER < 1000000L
77 # define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
78 # define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
79 # define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
81 # define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
82 # define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
83 # define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
87 # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
88 # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
91 # define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
92 #elif defined(__GNUG__)
93 # define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
95 #if defined(__GNUC_MINOR__)
96 # define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
98 #if defined(__GNUC_PATCHLEVEL__)
99 # define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
102 #elif defined(__PATHCC__)
103 # define COMPILER_ID "PathScale"
104 # define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
105 # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
106 # if defined(__PATHCC_PATCHLEVEL__)
107 # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
110 #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
111 # define COMPILER_ID "Embarcadero"
112 # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
113 # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
114 # define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
116 #elif defined(__BORLANDC__)
117 # define COMPILER_ID "Borland"
119 # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
120 # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
122 #elif defined(__WATCOMC__) && __WATCOMC__ < 1200
123 # define COMPILER_ID "Watcom"
125 # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
126 # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
127 # if (__WATCOMC__ % 10) > 0
128 # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
131 #elif defined(__WATCOMC__)
132 # define COMPILER_ID "OpenWatcom"
134 # define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
135 # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
136 # if (__WATCOMC__ % 10) > 0
137 # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
140 #elif defined(__SUNPRO_CC)
141 # define COMPILER_ID "SunPro"
142 # if __SUNPRO_CC >= 0x5100
144 # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
145 # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
146 # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
149 # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
150 # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
151 # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
154 #elif defined(__HP_aCC)
155 # define COMPILER_ID "HP"
157 # define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
158 # define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
159 # define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
161 #elif defined(__DECCXX)
162 # define COMPILER_ID "Compaq"
164 # define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
165 # define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
166 # define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
168 #elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
169 # define COMPILER_ID "zOS"
171 # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
172 # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
173 # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
175 #elif defined(__ibmxl__) && defined(__clang__)
176 # define COMPILER_ID "XLClang"
177 # define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
178 # define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
179 # define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
180 # define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
183 #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
184 # define COMPILER_ID "XL"
186 # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
187 # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
188 # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
190 #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
191 # define COMPILER_ID "VisualAge"
193 # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
194 # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
195 # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
197 #elif defined(__NVCOMPILER)
198 # define COMPILER_ID "NVHPC"
199 # define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
200 # define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
201 # if defined(__NVCOMPILER_PATCHLEVEL__)
202 # define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
206 # define COMPILER_ID "PGI"
207 # define COMPILER_VERSION_MAJOR DEC(__PGIC__)
208 # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
209 # if defined(__PGIC_PATCHLEVEL__)
210 # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
213 #elif defined(_CRAYC)
214 # define COMPILER_ID "Cray"
215 # define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
216 # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
218 #elif defined(__TI_COMPILER_VERSION__)
219 # define COMPILER_ID "TI"
221 # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
222 # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
223 # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
225 #elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
226 # define COMPILER_ID "Fujitsu"
228 #elif defined(__ghs__)
229 # define COMPILER_ID "GHS"
231 # ifdef __GHS_VERSION_NUMBER
232 # define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
233 # define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
234 # define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
237 #elif defined(__SCO_VERSION__)
238 # define COMPILER_ID "SCO"
240 #elif defined(__ARMCC_VERSION) && !defined(__clang__)
241 # define COMPILER_ID "ARMCC"
242 #if __ARMCC_VERSION >= 1000000
244 # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
245 # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
246 # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
249 # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
250 # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
251 # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
255 #elif defined(__clang__) && defined(__apple_build_version__)
256 # define COMPILER_ID "AppleClang"
257 # if defined(_MSC_VER)
258 # define SIMULATE_ID "MSVC"
260 # define COMPILER_VERSION_MAJOR DEC(__clang_major__)
261 # define COMPILER_VERSION_MINOR DEC(__clang_minor__)
262 # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
263 # if defined(_MSC_VER)
265 # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
266 # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
268 # define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
270 #elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
271 # define COMPILER_ID "ARMClang"
272 # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
273 # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
274 # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
275 # define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
277 #elif defined(__clang__)
278 # define COMPILER_ID "Clang"
279 # if defined(_MSC_VER)
280 # define SIMULATE_ID "MSVC"
282 # define COMPILER_VERSION_MAJOR DEC(__clang_major__)
283 # define COMPILER_VERSION_MINOR DEC(__clang_minor__)
284 # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
285 # if defined(_MSC_VER)
287 # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
288 # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
291 #elif defined(__GNUC__) || defined(__GNUG__)
292 # define COMPILER_ID "GNU"
293 # if defined(__GNUC__)
294 # define COMPILER_VERSION_MAJOR DEC(__GNUC__)
296 # define COMPILER_VERSION_MAJOR DEC(__GNUG__)
298 # if defined(__GNUC_MINOR__)
299 # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
301 # if defined(__GNUC_PATCHLEVEL__)
302 # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
305 #elif defined(_MSC_VER)
306 # define COMPILER_ID "MSVC"
308 # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
309 # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
310 # if defined(_MSC_FULL_VER)
311 # if _MSC_VER >= 1400
313 # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
316 # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
319 # if defined(_MSC_BUILD)
320 # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
323 #elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
324 # define COMPILER_ID "ADSP"
325 #if defined(__VISUALDSPVERSION__)
327 # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
328 # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
329 # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
332 #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
333 # define COMPILER_ID "IAR"
334 # if defined(__VER__) && defined(__ICCARM__)
335 # define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
336 # define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
337 # define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
338 # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
339 # elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
340 # define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
341 # define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
342 # define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
343 # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
350 #elif defined(__hpux) || defined(__hpua)
351 # define COMPILER_ID "HP"
354 # define COMPILER_ID ""
361 char const* info_compiler =
"INFO" ":" "compiler[" COMPILER_ID
"]";
363 char const* info_simulate =
"INFO" ":" "simulate[" SIMULATE_ID
"]";
367 char const* qnxnto =
"INFO" ":" "qnxnto[]";
370 #if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
371 char const *info_cray =
"INFO" ":" "compiler_wrapper[CrayPrgEnv]";
374 #define STRINGIFY_HELPER(X) #X
375 #define STRINGIFY(X) STRINGIFY_HELPER(X)
378 #if defined(__linux) || defined(__linux__) || defined(linux)
379 # define PLATFORM_ID "Linux"
381 #elif defined(__CYGWIN__)
382 # define PLATFORM_ID "Cygwin"
384 #elif defined(__MINGW32__)
385 # define PLATFORM_ID "MinGW"
387 #elif defined(__APPLE__)
388 # define PLATFORM_ID "Darwin"
390 #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
391 # define PLATFORM_ID "Windows"
393 #elif defined(__FreeBSD__) || defined(__FreeBSD)
394 # define PLATFORM_ID "FreeBSD"
396 #elif defined(__NetBSD__) || defined(__NetBSD)
397 # define PLATFORM_ID "NetBSD"
399 #elif defined(__OpenBSD__) || defined(__OPENBSD)
400 # define PLATFORM_ID "OpenBSD"
402 #elif defined(__sun) || defined(sun)
403 # define PLATFORM_ID "SunOS"
405 #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
406 # define PLATFORM_ID "AIX"
408 #elif defined(__hpux) || defined(__hpux__)
409 # define PLATFORM_ID "HP-UX"
411 #elif defined(__HAIKU__)
412 # define PLATFORM_ID "Haiku"
414 #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
415 # define PLATFORM_ID "BeOS"
417 #elif defined(__QNX__) || defined(__QNXNTO__)
418 # define PLATFORM_ID "QNX"
420 #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
421 # define PLATFORM_ID "Tru64"
423 #elif defined(__riscos) || defined(__riscos__)
424 # define PLATFORM_ID "RISCos"
426 #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
427 # define PLATFORM_ID "SINIX"
429 #elif defined(__UNIX_SV__)
430 # define PLATFORM_ID "UNIX_SV"
432 #elif defined(__bsdos__)
433 # define PLATFORM_ID "BSDOS"
435 #elif defined(_MPRAS) || defined(MPRAS)
436 # define PLATFORM_ID "MP-RAS"
438 #elif defined(__osf) || defined(__osf__)
439 # define PLATFORM_ID "OSF1"
441 #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
442 # define PLATFORM_ID "SCO_SV"
444 #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
445 # define PLATFORM_ID "ULTRIX"
447 #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
448 # define PLATFORM_ID "Xenix"
450 #elif defined(__WATCOMC__)
451 # if defined(__LINUX__)
452 # define PLATFORM_ID "Linux"
454 # elif defined(__DOS__)
455 # define PLATFORM_ID "DOS"
457 # elif defined(__OS2__)
458 # define PLATFORM_ID "OS2"
460 # elif defined(__WINDOWS__)
461 # define PLATFORM_ID "Windows3x"
463 # elif defined(__VXWORKS__)
464 # define PLATFORM_ID "VxWorks"
470 #elif defined(__INTEGRITY)
471 # if defined(INT_178B)
472 # define PLATFORM_ID "Integrity178"
475 # define PLATFORM_ID "Integrity"
488 #if defined(_WIN32) && defined(_MSC_VER)
489 # if defined(_M_IA64)
490 # define ARCHITECTURE_ID "IA64"
492 # elif defined(_M_ARM64EC)
493 # define ARCHITECTURE_ID "ARM64EC"
495 # elif defined(_M_X64) || defined(_M_AMD64)
496 # define ARCHITECTURE_ID "x64"
498 # elif defined(_M_IX86)
499 # define ARCHITECTURE_ID "X86"
501 # elif defined(_M_ARM64)
502 # define ARCHITECTURE_ID "ARM64"
504 # elif defined(_M_ARM)
506 # define ARCHITECTURE_ID "ARMV4I"
508 # define ARCHITECTURE_ID "ARMV5I"
510 # define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
513 # elif defined(_M_MIPS)
514 # define ARCHITECTURE_ID "MIPS"
516 # elif defined(_M_SH)
517 # define ARCHITECTURE_ID "SHx"
520 # define ARCHITECTURE_ID ""
523 #elif defined(__WATCOMC__)
525 # define ARCHITECTURE_ID "I86"
527 # elif defined(_M_IX86)
528 # define ARCHITECTURE_ID "X86"
531 # define ARCHITECTURE_ID ""
534 #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
535 # if defined(__ICCARM__)
536 # define ARCHITECTURE_ID "ARM"
538 # elif defined(__ICCRX__)
539 # define ARCHITECTURE_ID "RX"
541 # elif defined(__ICCRH850__)
542 # define ARCHITECTURE_ID "RH850"
544 # elif defined(__ICCRL78__)
545 # define ARCHITECTURE_ID "RL78"
547 # elif defined(__ICCRISCV__)
548 # define ARCHITECTURE_ID "RISCV"
550 # elif defined(__ICCAVR__)
551 # define ARCHITECTURE_ID "AVR"
553 # elif defined(__ICC430__)
554 # define ARCHITECTURE_ID "MSP430"
556 # elif defined(__ICCV850__)
557 # define ARCHITECTURE_ID "V850"
559 # elif defined(__ICC8051__)
560 # define ARCHITECTURE_ID "8051"
562 # elif defined(__ICCSTM8__)
563 # define ARCHITECTURE_ID "STM8"
566 # define ARCHITECTURE_ID ""
569 #elif defined(__ghs__)
570 # if defined(__PPC64__)
571 # define ARCHITECTURE_ID "PPC64"
573 # elif defined(__ppc__)
574 # define ARCHITECTURE_ID "PPC"
576 # elif defined(__ARM__)
577 # define ARCHITECTURE_ID "ARM"
579 # elif defined(__x86_64__)
580 # define ARCHITECTURE_ID "x64"
582 # elif defined(__i386__)
583 # define ARCHITECTURE_ID "X86"
586 # define ARCHITECTURE_ID ""
589 #elif defined(__TI_COMPILER_VERSION__)
590 # if defined(__TI_ARM__)
591 # define ARCHITECTURE_ID "ARM"
593 # elif defined(__MSP430__)
594 # define ARCHITECTURE_ID "MSP430"
596 # elif defined(__TMS320C28XX__)
597 # define ARCHITECTURE_ID "TMS320C28x"
599 # elif defined(__TMS320C6X__) || defined(_TMS320C6X)
600 # define ARCHITECTURE_ID "TMS320C6x"
603 # define ARCHITECTURE_ID ""
607 # define ARCHITECTURE_ID
612 ('0' + (((n) / 10000000)%10)), \
613 ('0' + (((n) / 1000000)%10)), \
614 ('0' + (((n) / 100000)%10)), \
615 ('0' + (((n) / 10000)%10)), \
616 ('0' + (((n) / 1000)%10)), \
617 ('0' + (((n) / 100)%10)), \
618 ('0' + (((n) / 10)%10)), \
623 ('0' + ((n)>>28 & 0xF)), \
624 ('0' + ((n)>>24 & 0xF)), \
625 ('0' + ((n)>>20 & 0xF)), \
626 ('0' + ((n)>>16 & 0xF)), \
627 ('0' + ((n)>>12 & 0xF)), \
628 ('0' + ((n)>>8 & 0xF)), \
629 ('0' + ((n)>>4 & 0xF)), \
633 #ifdef COMPILER_VERSION_MAJOR
634 char const info_version[] = {
635 'I',
'N',
'F',
'O',
':',
636 'c',
'o',
'm',
'p',
'i',
'l',
'e',
'r',
'_',
'v',
'e',
'r',
's',
'i',
'o',
'n',
'[',
637 COMPILER_VERSION_MAJOR,
638 # ifdef COMPILER_VERSION_MINOR
639 '.', COMPILER_VERSION_MINOR,
640 # ifdef COMPILER_VERSION_PATCH
641 '.', COMPILER_VERSION_PATCH,
642 # ifdef COMPILER_VERSION_TWEAK
643 '.', COMPILER_VERSION_TWEAK,
651 #ifdef COMPILER_VERSION_INTERNAL
652 char const info_version_internal[] = {
653 'I',
'N',
'F',
'O',
':',
654 'c',
'o',
'm',
'p',
'i',
'l',
'e',
'r',
'_',
'v',
'e',
'r',
's',
'i',
'o',
'n',
'_',
655 'i',
'n',
't',
'e',
'r',
'n',
'a',
'l',
'[',
656 COMPILER_VERSION_INTERNAL,
']',
'\0'};
660 #ifdef SIMULATE_VERSION_MAJOR
661 char const info_simulate_version[] = {
662 'I',
'N',
'F',
'O',
':',
663 's',
'i',
'm',
'u',
'l',
'a',
't',
'e',
'_',
'v',
'e',
'r',
's',
'i',
'o',
'n',
'[',
664 SIMULATE_VERSION_MAJOR,
665 # ifdef SIMULATE_VERSION_MINOR
666 '.', SIMULATE_VERSION_MINOR,
667 # ifdef SIMULATE_VERSION_PATCH
668 '.', SIMULATE_VERSION_PATCH,
669 # ifdef SIMULATE_VERSION_TWEAK
670 '.', SIMULATE_VERSION_TWEAK,
681 char const* info_platform =
"INFO" ":" "platform[" PLATFORM_ID
"]";
682 char const* info_arch =
"INFO" ":" "arch[" ARCHITECTURE_ID
"]";
686 #if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
687 # if defined(__INTEL_CXX11_MODE__)
688 # if defined(__cpp_aggregate_nsdmi)
689 # define CXX_STD 201402L
691 # define CXX_STD 201103L
694 # define CXX_STD 199711L
696 #elif defined(_MSC_VER) && defined(_MSVC_LANG)
697 # define CXX_STD _MSVC_LANG
699 # define CXX_STD __cplusplus
702 const char* info_language_dialect_default =
"INFO" ":" "dialect_default["
703 #if CXX_STD > 202002L
705 #elif CXX_STD > 201703L
707 #elif CXX_STD >= 201703L
709 #elif CXX_STD >= 201402L
711 #elif CXX_STD >= 201103L
720 int main(
int argc,
char* argv[])
723 require += info_compiler[argc];
724 require += info_platform[argc];
725 #ifdef COMPILER_VERSION_MAJOR
726 require += info_version[argc];
728 #ifdef COMPILER_VERSION_INTERNAL
729 require += info_version_internal[argc];
732 require += info_simulate[argc];
734 #ifdef SIMULATE_VERSION_MAJOR
735 require += info_simulate_version[argc];
737 #if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
738 require += info_cray[argc];
740 require += info_language_dialect_default[argc];