Merge topic 'memorize_msvc_like_compilers_C_support'

8e4899fd6c CompileFeatures: Record which C features the MSVC compiler supports

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3226
diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake
index ff51d30..0448965 100644
--- a/Modules/Compiler/Clang-C.cmake
+++ b/Modules/Compiler/Clang-C.cmake
@@ -23,12 +23,15 @@
     # clang-cl doesn't have any of these
     set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
     set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
 
     set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
     set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
 
     set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
     set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
   endif()
 endif()
 
diff --git a/Modules/Compiler/MSVC-C.cmake b/Modules/Compiler/MSVC-C.cmake
index 22c34f8..a722130 100644
--- a/Modules/Compiler/MSVC-C.cmake
+++ b/Modules/Compiler/MSVC-C.cmake
@@ -11,8 +11,8 @@
 # There is no meaningful default for this
 set(CMAKE_C_STANDARD_DEFAULT "")
 
-# There are no C compiler modes so we only need to test features once.
-# Override the default macro for this special case.  Pretend that
+# There are no C compiler modes so we hard-code the known compiler supported
+# features. Override the default macro for this special case.  Pretend that
 # all language standards are available so that at least compilation
 # can be attempted.
 macro(cmake_record_c_compile_features)
@@ -20,6 +20,10 @@
     c_std_90
     c_std_99
     c_std_11
+    c_function_prototypes
+    c_variadic_macros
     )
-  _record_compiler_features(C "" CMAKE_C_COMPILE_FEATURES)
+  list(APPEND CMAKE_C90_COMPILE_FEATURES c_std_90 c_function_prototypes)
+  list(APPEND CMAKE_C99_COMPILE_FEATURES c_std_99 c_variadic_macros)
+  list(APPEND CMAKE_C11_COMPILE_FEATURES c_std_11)
 endmacro()