1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Exception specifications must be visited before ctor-initializers (they appear first).

This commit is contained in:
Markus Schorn 2008-06-19 11:06:30 +00:00
parent ab6b931d69
commit 000b63be83

View file

@ -6,7 +6,8 @@
* http://www.eclipse.org/legal/epl-v10.html * http://www.eclipse.org/legal/epl-v10.html
* *
* Contributors: * Contributors:
* IBM - Initial API and implementation * IBM - Initial API and implementation
* Markus Schorn (Wind River Systems)
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.cpp; package org.eclipse.cdt.internal.core.dom.parser.cpp;
@ -139,19 +140,20 @@ public class CPPASTFunctionDeclarator extends CPPASTDeclarator implements ICPPAS
for (int i = 0; i < params.length; i++) { for (int i = 0; i < params.length; i++) {
if (!params[i].accept(action)) return false; if (!params[i].accept(action)) return false;
} }
ICPPASTConstructorChainInitializer[] chain = getConstructorChain();
for (int i = 0; i < chain.length; i++) {
if (!chain[i].accept(action)) return false;
}
IASTInitializer initializer = getInitializer();
if (initializer != null && !initializer.accept(action)) return false;
IASTTypeId[] ids = getExceptionSpecification(); IASTTypeId[] ids = getExceptionSpecification();
for (int i = 0; i < ids.length; i++) { for (int i = 0; i < ids.length; i++) {
if (!ids[i].accept(action)) return false; if (!ids[i].accept(action)) return false;
} }
IASTInitializer initializer = getInitializer();
if (initializer != null && !initializer.accept(action)) return false;
ICPPASTConstructorChainInitializer[] chain = getConstructorChain();
for (int i = 0; i < chain.length; i++) {
if (!chain[i].accept(action)) return false;
}
return true; return true;
} }
} }