Bug 500798: Mark GCC template init message as info
When GCC skips template instantiation in its output it was parsed
as an error instead of an informational message.
Change-Id: If5dca2d1430a6b5e9cb9317649dea8291bfc0356
Signed-off-by: Stephan Oostveen <stephan.oostveen@nextlevel-electronics.com>
diff --git a/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/errorparsers/tests/GCCErrorParserTests.java b/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/errorparsers/tests/GCCErrorParserTests.java
index 1514d2f..6e581d5 100644
--- a/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/errorparsers/tests/GCCErrorParserTests.java
+++ b/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/internal/errorparsers/tests/GCCErrorParserTests.java
@@ -206,4 +206,16 @@
new String[] { GCC_ERROR_PARSER_ID });
}
+ public void testGccErrorMessages_TemplateInstantiation_bug500798() throws IOException {
+ runParserTest(new String[] {
+ "test.hpp:309:18: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]",
+ "test2.hpp:83:60: required from here",
+ "test3.hpp:78:38: warning: conversion from 'long int' to 'float' may change value [-Wconversion]" }, 0, // errors
+ 1, //warnings
+ 2, //infos
+ new String[] { "test.hpp", "test2.hpp", "test3.hpp" },
+ new String[] { "[ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]",
+ "required from here", "conversion from 'long int' to 'float' may change value [-Wconversion]" },
+ new String[] { GCC_ERROR_PARSER_ID });
+ }
}
diff --git a/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF b/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
index 377ca62..e0deeb5 100644
--- a/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.core; singleton:=true
-Bundle-Version: 7.1.200.qualifier
+Bundle-Version: 7.1.300.qualifier
Bundle-Activator: org.eclipse.cdt.core.CCorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/core/org.eclipse.cdt.core/plugin.properties b/core/org.eclipse.cdt.core/plugin.properties
index 6eca878..fbcdc43 100644
--- a/core/org.eclipse.cdt.core/plugin.properties
+++ b/core/org.eclipse.cdt.core/plugin.properties
@@ -57,6 +57,7 @@
CDTGNUCErrorParser.regex.ForEachFunctionItAppearsIn=(.*?):(\\d+):(\\d+:)? .*for each function it appears in.\\).*
CDTGNUCErrorParser.regex.ReportedOnlyOncePerInputFile=(.*?):(\\d+):(\\d+:)? .*this will be reported only once per input file.*
CDTGNUCErrorParser.regex.InstantiatedFromHere=(.*?):(\\d+):(\\d+:)?\\s*(.*((instantiated)|(required)) from .*)
+CDTGNUCErrorParser.regex.SkippingInstantiationContexts=(.*?):(\\d+):(\\d+:)?\\s*(\\[\\s*skipping \\d+ instantiation context.*)
CDTGNUCErrorParser.regex.GenericInfo=(.*?):(\\d+):(\\d+:)?\\s*(([Nn]ote)|(NOTE)|([Ii]nfo)|(INFO)): (.*)
CDTGNUCErrorParser.regex.ParseErrorBefore=(.*?):(\\d+):(\\d+:)? (parse error before.*[`'"](.*)['"].*)
CDTGNUCErrorParser.regex.ErrorUndeclared=(.*?):(\\d+):(\\d+:)? [Ee]rror: ([`'"](.*)['"] undeclared .*)
diff --git a/core/org.eclipse.cdt.core/plugin.xml b/core/org.eclipse.cdt.core/plugin.xml
index e88b3b7..d7f02eb 100644
--- a/core/org.eclipse.cdt.core/plugin.xml
+++ b/core/org.eclipse.cdt.core/plugin.xml
@@ -194,6 +194,14 @@
<pattern description-expr="$5" eat-processed-line="true" file-expr="$1" line-expr="$2" regex="%CDTGNULinkerErrorParser.regex.WarningDangerousFunction" severity="Warning" variable-expr="$6"/>
<pattern description-expr="$4" eat-processed-line="true" file-expr="$1" line-expr="$2" regex="%CDTGNUCErrorParser.regex.InstantiatedFromHere" severity="Info"/>
<pattern
+ description-expr="$4"
+ eat-processed-line="true"
+ file-expr="$1"
+ line-expr="$2"
+ regex="%CDTGNUCErrorParser.regex.SkippingInstantiationContexts"
+ severity="Info">
+ </pattern>
+ <pattern
description-expr="$7"
eat-processed-line="true"
file-expr="$1"