From 3585bd0ea3e7a32f8dc3e634b4358d822d9ee018 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 5 Nov 2018 11:47:59 +0200 Subject: Distinguish between MSVC command line errors and warnings --- build2/cc/compile-rule.cxx | 5 ++++- build2/cc/msvc.cxx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build2/cc/compile-rule.cxx b/build2/cc/compile-rule.cxx index 437255e..0ce593e 100644 --- a/build2/cc/compile-rule.cxx +++ b/build2/cc/compile-rule.cxx @@ -2585,7 +2585,10 @@ namespace build2 // if (l != src.path ().leaf ().string ()) { - if (msvc_sense_diag (l, 'D') != string::npos) + // D8XXX are errors while D9XXX are warnings. + // + size_t p (msvc_sense_diag (l, 'D')); + if (p != string::npos && l[p] == '9') continue; text << l; diff --git a/build2/cc/msvc.cxx b/build2/cc/msvc.cxx index 4f63abf..0d3650e 100644 --- a/build2/cc/msvc.cxx +++ b/build2/cc/msvc.cxx @@ -140,7 +140,7 @@ namespace build2 { // While it appears VC always prints the source name (event if the // file does not exist), let's do a sanity check. Also handle the - // command line warnings which come before the file name. + // command line errors/warnings which come before the file name. // for (string l; !eof (getline (is, l)); ) { -- cgit v1.1