From ddeca093ea470b9cfdc5d387bbcfa01056f56e8e Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Wed, 26 Jan 2005 15:22:21 +0000 Subject: [PATCH] fix bug 83709 --- .../core/dom/parser/cpp/CPPVisitor.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java index 45b3d88b4a1..5070dc84e68 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java @@ -39,7 +39,6 @@ import org.eclipse.cdt.core.dom.ast.IASTFieldReference; import org.eclipse.cdt.core.dom.ast.IASTForStatement; import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression; import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator; -import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition; import org.eclipse.cdt.core.dom.ast.IASTGotoStatement; import org.eclipse.cdt.core.dom.ast.IASTIdExpression; @@ -60,6 +59,7 @@ import org.eclipse.cdt.core.dom.ast.IASTProblemHolder; import org.eclipse.cdt.core.dom.ast.IASTReturnStatement; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration; +import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTSwitchStatement; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; @@ -835,9 +835,7 @@ public class CPPVisitor { ICPPASTFunctionDeclarator fdtor = (ICPPASTFunctionDeclarator) declarator; IASTParameterDeclaration [] list = fdtor.getParameters(); for( int i = 0; i < list.length; i++ ){ - IASTParameterDeclaration param = list[i]; - if( !visitDeclSpecifier( param.getDeclSpecifier(), action ) ) return false; - if( !visitDeclarator( param.getDeclarator(), action ) ) return false; + if( !visitParameterDeclaration( list[i], action ) ) return false; } ICPPASTConstructorChainInitializer [] ctorChain = fdtor.getConstructorChain(); for( int i = 0; i < ctorChain.length; i++ ){ @@ -1091,6 +1089,20 @@ public class CPPVisitor { return true; } + public static boolean visitParameterDeclaration( IASTParameterDeclaration parameterDeclaration, CPPBaseVisitorAction action ){ + if( action.processParameterDeclarations ){ + switch( action.processParameterDeclaration( parameterDeclaration ) ){ + case CPPBaseVisitorAction.PROCESS_ABORT : return false; + case CPPBaseVisitorAction.PROCESS_SKIP : return true; + default : break; + } + } + + if( !visitDeclSpecifier( parameterDeclaration.getDeclSpecifier(), action ) ) return false; + if( !visitDeclarator( parameterDeclaration.getDeclarator(), action ) ) return false; + return true; + } + /** * @param parameter * @param action