Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java4
2 files changed, 11 insertions, 2 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java
index 452ca0e7ec2..b0717f0aa51 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2KnRTests.java
@@ -674,4 +674,13 @@ public class AST2KnRTests extends AST2BaseTest {
fail(e.getMessage());
}
}
+
+ // void push_constant (in_char, conv_base)
+ // char (*in_char)(void);
+ // int conv_base;
+ // {}
+ public void testFunctionPtrParameter_378614() throws Exception {
+ String code= getAboveComment();
+ parseAndCheckBindings(code, ParserLanguage.C, true);
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java
index 9238a9a1bfd..613b0bcee29 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java
@@ -1620,9 +1620,9 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
IASTDeclarator[] decltors = declaration.getDeclarators();
for (IASTDeclarator decltor : decltors) {
boolean decltorOk = false;
- final char[] nchars = decltor.getName().toCharArray();
+ final char[] nchars = ASTQueries.findInnermostDeclarator(decltor).getName().toCharArray();
for (IASTName parmName : parmNames) {
- if (CharArrayUtils.equals(nchars, parmName.toCharArray())) {
+ if (CharArrayUtils.equals(nchars, parmName.toCharArray())) {
decltorOk= true;
break;
}

Back to the top