Browse Source

Features: Detect C default dialect on MSVC-like compilers

These compilers default to C 90 but do not define __STDC__.  While MSVC
itself has no option to change the dialect, compilers that document
compatibility with MSVC and define _MSC_VER may (e.g. Intel).
Brad King 9 years ago
parent
commit
7f401ae43f
1 changed files with 5 additions and 1 deletions
  1. 5 1
      Modules/CMakeCCompilerId.c.in

+ 5 - 1
Modules/CMakeCCompilerId.c.in

@@ -34,7 +34,11 @@ char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
 @CMAKE_C_COMPILER_ID_ERROR_FOR_TEST@
 
 #if !defined(__STDC__)
-# define C_DIALECT
+# if defined(_MSC_VER) && !defined(__clang__)
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
 #elif __STDC_VERSION__ >= 201000L
 # define C_DIALECT "11"
 #elif __STDC_VERSION__ >= 199901L