Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] FIXED 84176 - compound literal C example from C99 6.5.2.5-16 has 2 IASTProblemStatements


FIXED 84176 - compound literal C example from C99 6.5.2.5-16 has 2 IASTProblemStatements

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


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.28
diff -u -r1.28 GNUCSourceParser.java
--- parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java	15 Feb 2005 19:18:23 -0000	1.28
+++ parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java	18 Feb 2005 16:45:22 -0000
@@ -341,6 +341,10 @@
                     && (LT(1) == IToken.tIDENTIFIER || LT(1) == IToken.tLBRACKET)) {
 
                 if (LT(1) == IToken.tIDENTIFIER) {
+                	// fix for 84176: if reach identifier and it's not a designator then return empty designator list
+                	if (LT(2) != IToken.tCOLON)
+                		return designatorList;
+                	
                     IToken identifier = identifier();
                     int lastOffset = consume(IToken.tCOLON).getEndOffset();
                     ICASTFieldDesignator designator = createFieldDesignator();
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.55
diff -u -r1.55 AST2Tests.java
--- parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java	15 Feb 2005 19:18:27 -0000	1.55
+++ parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java	18 Feb 2005 16:45:50 -0000
@@ -2735,7 +2735,7 @@
         buffer.append("q = p;\n"); //$NON-NLS-1$
         buffer.append("p = &((struct s){ j++ }); \n"); //$NON-NLS-1$
         buffer.append("}\n"); //$NON-NLS-1$
-        parse(buffer.toString(), ParserLanguage.C);
+        parse(buffer.toString(), ParserLanguage.C, false, true);
     }
 
     public void testBug84266() throws Exception {

Back to the top