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 6e581d5c43a..e18f30268f7 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 @@ -218,4 +218,22 @@ public class GCCErrorParserTests extends GenericErrorParserTests { "required from here", "conversion from 'long int' to 'float' may change value [-Wconversion]" }, new String[] { GCC_ERROR_PARSER_ID }); } + + public void testGccErrorMessages_InConstexprExpansion() throws IOException { + runParserTest( + new String[] { "../can/CANBus.h: In instantiation of 'constexpr void Test::setupBitrate(T)':", + "../can/CANBus.h:113:6: required from 'static auto& Test::getInstance()'", + "../can/CAN.cpp:19:27: required from here", + "../can/CANBus.h:72:17: in 'constexpr' expansion of 'instance.Test::Test()'", + "../can/CANBus.h:173:92: warning: unused parameter 'bitrate' [-Wunused-parameter]", + " 173 | constexpr void setupBitrate(T bitrate) noexcept {" }, + 0, // errors + 1, //warnings + 3, //infos + new String[] { "CAN.cpp", "CANBus.h" }, + new String[] { "required from 'static auto& Test::getInstance()'", "required from here", + "in 'constexpr' expansion of 'instance.Test::Test()'", + "unused parameter 'bitrate' [-Wunused-parameter]" }, + new String[] { GCC_ERROR_PARSER_ID }); + } } diff --git a/core/org.eclipse.cdt.core/plugin.properties b/core/org.eclipse.cdt.core/plugin.properties index fbcdc43c132..8cf6be710bb 100644 --- a/core/org.eclipse.cdt.core/plugin.properties +++ b/core/org.eclipse.cdt.core/plugin.properties @@ -58,6 +58,7 @@ CDTGNUCErrorParser.regex.ForEachFunctionItAppearsIn=(.*?):(\\d+):(\\d+:)? .*for 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.InConstexprExpansion=(.*?):(\\d+):(\\d+:)?\\s*(in 'constexpr' expansion of.*) 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 d7f02eb4e65..8e1bcb7822c 100644 --- a/core/org.eclipse.cdt.core/plugin.xml +++ b/core/org.eclipse.cdt.core/plugin.xml @@ -201,6 +201,14 @@ regex="%CDTGNUCErrorParser.regex.SkippingInstantiationContexts" severity="Info"> + +