c3dc8935ee
In commit v3.4.0-rc1~71^2 (Project: Determine default language dialect for the compiler, 2015-09-15) we added an "INFO:..." string to the compiler id detection binary. The value can be optimized out of the compiler id binary unless we force it to be included by making the program behavior depend on it at runtime. Add references to the value as we do for the other info strings already. Gentoo-Issue: https://bugs.gentoo.org/show_bug.cgi?id=565744
63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
#ifdef __cplusplus
|
|
# error "A C++ compiler has been selected for C."
|
|
#endif
|
|
|
|
#if defined(__18CXX)
|
|
# define ID_VOID_MAIN
|
|
#endif
|
|
|
|
@CMAKE_C_COMPILER_ID_CONTENT@
|
|
|
|
/* Construct the string literal in pieces to prevent the source from
|
|
getting matched. Store it in a pointer rather than an array
|
|
because some compilers will just produce instructions to fill the
|
|
array rather than assigning a pointer to a static array. */
|
|
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
|
#ifdef SIMULATE_ID
|
|
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|
#endif
|
|
|
|
#ifdef __QNXNTO__
|
|
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
|
#endif
|
|
|
|
@CMAKE_C_COMPILER_ID_PLATFORM_CONTENT@
|
|
@CMAKE_C_COMPILER_ID_ERROR_FOR_TEST@
|
|
|
|
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
|
|
#if !defined(__STDC_VERSION__)
|
|
"90"
|
|
#elif __STDC_VERSION__ >= 201000L
|
|
"11"
|
|
#elif __STDC_VERSION__ >= 199901L
|
|
"99"
|
|
#else
|
|
#endif
|
|
"]";
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
|
|
#ifdef ID_VOID_MAIN
|
|
void main() {}
|
|
#else
|
|
int main(int argc, char* argv[])
|
|
{
|
|
int require = 0;
|
|
require += info_compiler[argc];
|
|
require += info_platform[argc];
|
|
require += info_arch[argc];
|
|
#ifdef COMPILER_VERSION_MAJOR
|
|
require += info_version[argc];
|
|
#endif
|
|
#ifdef SIMULATE_ID
|
|
require += info_simulate[argc];
|
|
#endif
|
|
#ifdef SIMULATE_VERSION_MAJOR
|
|
require += info_simulate_version[argc];
|
|
#endif
|
|
require += info_language_dialect_default[argc];
|
|
(void)argv;
|
|
return require;
|
|
}
|
|
#endif
|