diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 8aa96d8ab9f23c46f99e797a3732ae9c78ac4f87..770993956f789d8036a3a746067234ff6f47c964 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -478,7 +478,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI, // Initialize language-specific preprocessor defines. // Standard conforming mode? - if (!LangOpts.GNUMode) + if (!LangOpts.GNUMode && !LangOpts.MSVCCompat) Builder.defineMacro("__STRICT_ANSI__"); if (LangOpts.CPlusPlus11) diff --git a/test/Preprocessor/predefined-macros.c b/test/Preprocessor/predefined-macros.c index 34de794a47cf7a292e4a0bee735e352655b96b7d..3e0b8a030752763838299fc134832d44aad7e582 100644 --- a/test/Preprocessor/predefined-macros.c +++ b/test/Preprocessor/predefined-macros.c @@ -9,6 +9,7 @@ // CHECK-MS: #define _M_IX86_FP // CHECK-MS: #define _WIN32 1 // CHECK-MS-NOT: #define __GNUC__ +// CHECK-MS-NOT: #define __STRICT_ANSI__ // // RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-compatibility \ // RUN: -o - | FileCheck %s --check-prefix=CHECK-MS-STDINT