| commit | 3b8fcb62e7fb5c56c0c4ec6cc3c2369f1412fca9 | [log] [tgz] |
|---|---|---|
| author | Marc-Andre Laperle <malaperle@gmail.com> | Wed Jun 30 21:23:56 2021 -0400 |
| committer | Marc-André Laperle <malaperle@gmail.com> | Wed Jul 07 01:57:06 2021 -0400 |
| tree | bd2f7d323ce3c4746ecb4f8f30a7da1914b2e436 | |
| parent | 99682412ce9676fb5cfecc9e0e8d8c1e70ffeb6a [diff] |
Bug 574578 - Syntax error when using __declspec as type-id specifier I initially applied a fix only to alias declarations by parsing it before the type-id but to my surprise __declspec works more widely as a type-id specifier. Change-Id: I50217e2453f888207b73fc3f4c7ff1ea67bf5937 Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index 381c576..0de1810 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java
@@ -5421,6 +5421,18 @@ } } + // using MyType = __declspec(dllexport) int; + // + // template <typename T> + // class Vector { + // }; + // void test() { + // Vector <__declspec(dllexport) int> a; + // } + public void testDeclspecTypeId_574578() throws Exception { + parseAndCheckBindings(getAboveComment(), CPP, true); + } + // struct Outer { // struct {int a1;}; // struct {int a2;} a3;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index 9698bfa..58e28e2 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java
@@ -2816,6 +2816,9 @@ case IGCCToken.t__attribute__: case IGCCToken.tTT_underlying_type: + // msvc-compatibility + case IGCCToken.t__declspec: + // content assist case IToken.tCOMPLETION: return true;