1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-22 15:53:58 +02:00

Patch for Devin Steffler.

FIXED 87649 - [Lengths] ICASTDesignatedInitializer's length does not include the length of the IASTInitializerExpression
This commit is contained in:
John Camelon 2005-03-10 20:43:57 +00:00
parent 4b7952f19c
commit 122a949f09
2 changed files with 7 additions and 2 deletions

View file

@ -76,6 +76,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.c.CFunction;
import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
import org.eclipse.cdt.internal.core.parser.ParserException;
@ -1872,7 +1873,11 @@ public class AST2Tests extends AST2BaseTest {
.getInitializer()).getInitializers();
IASTName name_y2 = ((ICASTFieldDesignator) ((ICASTDesignatedInitializer) initializers1[0])
.getDesignators()[0]).getName();
IASTName name_x2 = ((ICASTFieldDesignator) ((ICASTDesignatedInitializer) initializers1[1])
// test bug 87649
assertEquals(((ASTNode)(ICASTDesignatedInitializer) initializers1[0]).getLength(), 7);
IASTName name_x2 = ((ICASTFieldDesignator) ((ICASTDesignatedInitializer) initializers1[1])
.getDesignators()[0]).getName();
IASTSimpleDeclaration point = (IASTSimpleDeclaration) ((IASTDeclarationStatement) statements[1])

View file

@ -172,7 +172,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
ICASTDesignatedInitializer desigInitializer = createDesignatorInitializer();
((CASTNode) desigInitializer).setOffsetAndLength(
((CASTNode) newDesignators.get(0)).getOffset(),
((CASTNode) newDesignators.get(0)).getLength());
((CASTNode)initializer).getOffset() + ((CASTNode)initializer).getLength() - ((CASTNode) newDesignators.get(0)).getOffset());
for (int i = 0; i < newDesignators.size(); ++i) {
ICASTDesignator d = (ICASTDesignator) newDesignators
.get(i);