summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-04-09 16:49:04 +0200
committercon <qtc-committer@nokia.com>2010-04-14 17:00:53 +0200
commit509283941bac1571b2c86a3fde98982e912be36d (patch)
treebce6c0f18ccd0e1e240d771a5f9f25e7a4ca46df
parentad89369de8f9dff8b32118ef58ea6f8f7123b377 (diff)
downloadqt-creator-509283941bac1571b2c86a3fde98982e912be36d.tar.gz
GCC parser improvements
(cherry picked from commit 37d192099d707589f8dbeda69430c3a72eaef274)
-rw-r--r--src/plugins/projectexplorer/gccparser.cpp55
1 files changed, 54 insertions, 1 deletions
diff --git a/src/plugins/projectexplorer/gccparser.cpp b/src/plugins/projectexplorer/gccparser.cpp
index 2f98f8dbd5..b63d80f6df 100644
--- a/src/plugins/projectexplorer/gccparser.cpp
+++ b/src/plugins/projectexplorer/gccparser.cpp
@@ -131,7 +131,10 @@ void GccParser::stdError(const QString &line)
m_regExpLinker.cap(1) /* filename */,
lineno,
Constants::TASK_CATEGORY_COMPILE);
- if (m_regExpInFunction.indexIn(description) > -1)
+ if (m_regExpInFunction.indexIn(description) > -1 ||
+ description.startsWith(QLatin1String("At global scope")) ||
+ description.startsWith(QLatin1String("instantiated from ")) ||
+ description.startsWith(QLatin1String("In instantiation of ")))
task.type = Task::Unknown;
emit addTask(task);
@@ -429,6 +432,56 @@ void ProjectExplorerPlugin::testGccOutputParsers_data()
QString(), -1,
Constants::TASK_CATEGORY_COMPILE))
<< QString();
+ QTest::newRow("In function")
+ << QString::fromLatin1("../../scriptbug/main.cpp: In function void foo(i) [with i = double]:\n"
+ "../../scriptbug/main.cpp:22: instantiated from here\n"
+ "../../scriptbug/main.cpp:8: warning: unused variable c")
+ << OutputParserTester::STDERR
+ << QString() << QString()
+ << ( QList<ProjectExplorer::Task>()
+ << Task(Task::Unknown,
+ QLatin1String("In function void foo(i) [with i = double]:"),
+ QLatin1String("../../scriptbug/main.cpp"), -1,
+ Constants::TASK_CATEGORY_COMPILE)
+ << Task(Task::Unknown,
+ QLatin1String("instantiated from here"),
+ QLatin1String("../../scriptbug/main.cpp"), 22,
+ Constants::TASK_CATEGORY_COMPILE)
+ << Task(Task::Warning,
+ QLatin1String("unused variable c"),
+ QLatin1String("../../scriptbug/main.cpp"), 8,
+ Constants::TASK_CATEGORY_COMPILE))
+ << QString();
+ QTest::newRow("At global scope")
+ << QString::fromLatin1("../../scriptbug/main.cpp: At global scope:\n"
+ "../../scriptbug/main.cpp: In instantiation of void bar(i) [with i = double]:\n"
+ "../../scriptbug/main.cpp:8: instantiated from void foo(i) [with i = double]\n"
+ "../../scriptbug/main.cpp:22: instantiated from here\n"
+ "../../scriptbug/main.cpp:5: warning: unused parameter v")
+ << OutputParserTester::STDERR
+ << QString() << QString()
+ << ( QList<ProjectExplorer::Task>()
+ << Task(Task::Unknown,
+ QLatin1String("At global scope:"),
+ QLatin1String("../../scriptbug/main.cpp"), -1,
+ Constants::TASK_CATEGORY_COMPILE)
+ << Task(Task::Unknown,
+ QLatin1String("In instantiation of void bar(i) [with i = double]:"),
+ QLatin1String("../../scriptbug/main.cpp"), -1,
+ Constants::TASK_CATEGORY_COMPILE)
+ << Task(Task::Unknown,
+ QLatin1String("instantiated from void foo(i) [with i = double]"),
+ QLatin1String("../../scriptbug/main.cpp"), 8,
+ Constants::TASK_CATEGORY_COMPILE)
+ << Task(Task::Unknown,
+ QLatin1String("instantiated from here"),
+ QLatin1String("../../scriptbug/main.cpp"), 22,
+ Constants::TASK_CATEGORY_COMPILE)
+ << Task(Task::Warning,
+ QLatin1String("unused parameter v"),
+ QLatin1String("../../scriptbug/main.cpp"), 5,
+ Constants::TASK_CATEGORY_COMPILE))
+ << QString();
}
void ProjectExplorerPlugin::testGccOutputParsers()