Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] FIXED 87649 - [Lengths] ICASTDesignatedInitializer's length does not include the length of the IASTInitializerExpression


FIXED 87649 - [Lengths] ICASTDesignatedInitializer's length does not include the length of the IASTInitializerExpression

Devin Steffler
IBM's Eclipse CDT
Ottawa (Palladium), Ontario, Canada


Index: parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java,v
retrieving revision 1.59
diff -u -r1.59 AST2Tests.java
--- parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java	8 Mar 2005 19:32:07 -0000	1.59
+++ parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java	10 Mar 2005 18:47:04 -0000
@@ -76,6 +76,7 @@
 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 @@
                 .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])
Index: parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java,v
retrieving revision 1.33
diff -u -r1.33 GNUCSourceParser.java
--- parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java	23 Feb 2005 19:49:24 -0000	1.33
+++ parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java	10 Mar 2005 18:46:49 -0000
@@ -172,7 +172,7 @@
                     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);

Back to the top