mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-17 07:11:52 +08:00
Features: Fix C90 feature detection.
This bug caused c_function_prototypes to not be recorded at configure time when compiling with -std=gnu99 or similar. In the case of feature recording, that was not a problem, because the logic in CMakeDetermineCompileFeatures.cmake currently assumes that a feature present for an earlier standard is present for a later standard. However, the detection strings are also used in WriteCompilerDetectionHeader, so the feature macro has been defined to '0' when using a later language dialect. Fix that by not checking the existence of the __STDC_VERSION__ macro at all when detecting C90 features.
This commit is contained in:
29
Tests/Module/WriteCompilerDetectionHeader/main.c
Normal file
29
Tests/Module/WriteCompilerDetectionHeader/main.c
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
#include "test_compiler_detection.h"
|
||||
|
||||
#if !defined(TEST_COMPILER_C_FUNCTION_PROTOTYPES) || !TEST_COMPILER_C_FUNCTION_PROTOTYPES
|
||||
# error Expected TEST_COMPILER_C_FUNCTION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#if !EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES
|
||||
# error Expected EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#if !defined(TEST_COMPILER_C_RESTRICT) || !TEST_COMPILER_C_RESTRICT
|
||||
# if EXPECTED_COMPILER_C_RESTRICT
|
||||
# error Expected TEST_COMPILER_C_RESTRICT
|
||||
# endif
|
||||
#else
|
||||
# if !EXPECTED_COMPILER_C_RESTRICT
|
||||
# error Expect no TEST_COMPILER_C_RESTRICT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef TEST_COMPILER_CXX_STATIC_ASSERT
|
||||
#error Expect no CXX features defined
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user