diff options
-rw-r--r-- | libbuild2/cc/predefs-rule.cxx | 2 | ||||
-rw-r--r-- | libbuild2/cxx/init.cxx | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libbuild2/cc/predefs-rule.cxx b/libbuild2/cc/predefs-rule.cxx index e74192d..606db06 100644 --- a/libbuild2/cc/predefs-rule.cxx +++ b/libbuild2/cc/predefs-rule.cxx @@ -278,7 +278,7 @@ namespace build2 args.push_back ("/Zc:preprocessor"); // Preproc. conformance mode. // Output (note that while the /Fi: variant is only availbale - // starting with VS2013, /Zc:preprocessor is only available in + // starting with VS2013, /Zc:preprocessor is only available // starting from VS2019). // args.push_back ("/Fi:"); diff --git a/libbuild2/cxx/init.cxx b/libbuild2/cxx/init.cxx index 0c29d41..2d897ca 100644 --- a/libbuild2/cxx/init.cxx +++ b/libbuild2/cxx/init.cxx @@ -481,6 +481,12 @@ namespace build2 { case compiler_type::msvc: { + // Let's enable the new preprocessor in this mode. For background, + // see MSVC issue 10537317. + // + if (mj > 19 || (mj == 19 && mi >= 39)) + prepend ("/Zc:preprocessor"); + // Starting with 15.5 (19.12) Visual Studio-created projects // default to the strict mode. However, this flag currently tends // to trigger too many compiler bugs. So for now we leave it to |