CompileOutput: Flush other parsers on make error detection

Fixes wrong linked lines when make terminates. The lines marked with ** are
linked instead of the lines marked with &&.

int main()
{
    boo;
}

main.cpp: In function 'int main()':
main.cpp:3:5: error: 'boo' was not declared in this scope
     boo;
     ^~~
&& main.cpp:3:5: note: suggested alternative: 'bool'
&&     boo;
&&     ^~~
&&**   bool
** mingw32-make[1]: *** [Makefile.Debug:98: debug/main.o] Error 1
** mingw32-make: *** [Makefile:34: debug] Error 2
** mingw32-make[1]: Leaving directory 'D:/Projects/test'

Change-Id: I33b87d5b20e1e5ee21319986086c832a4aa77e07
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Orgad Shaneh
2017-08-24 09:08:09 +03:00
committed by Orgad Shaneh
parent e1d09e518d
commit 34c0b2c23d
@@ -115,6 +115,7 @@ void GnuMakeParser::stdError(const QString &line)
QRegularExpressionMatch match = m_errorInMakefile.match(lne);
if (match.hasMatch()) {
flush();
Result res = parseDescription(match.captured(5));
if (res.isFatal)
++m_fatalErrorCount;
@@ -128,6 +129,7 @@ void GnuMakeParser::stdError(const QString &line)
}
match = m_makeLine.match(lne);
if (match.hasMatch()) {
flush();
Result res = parseDescription(match.captured(6));
if (res.isFatal)
++m_fatalErrorCount;